https://bugzilla.novell.com/show_bug.cgi?id=380252
https://bugzilla.novell.com/show_bug.cgi?id=380252#c6 Michael Carroll <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO CC| |[email protected] InfoProvider| |[email protected] --- Comment #6 from Michael Carroll <[email protected]> 2012-01-03 22:51:20 UTC --- Found workaround @ (http://lists.ximian.com/pipermail/mono-bugs/2011-March/109820.html) BUT like the guy says on that Page. ---------------------------------- It might be useful to fix the DataTable Load & Fill methods so that sqlite3_column_origin_name() is avoided; the above email suggests: ---------------------------------- I see this issue was opened AGES AGO!!! My word guys lets fix/improve this shall we? Save the developers of the world lots of heartache... ------------------------------------------------------------------------- Suggested workaround below worked okay for me, but oh so terribly ugly... ------------------------------------------------------------------------- SqliteDataReader reader = mycommand.ExecuteReader(); // Add all the columns. for (int i = 0; i < reader.FieldCount; i++) { DataColumn col = new DataColumn(); col.DataType = reader.GetFieldType(i); col.ColumnName = reader.GetName(i); dt.Columns.Add(col); } while (reader.Read()) { DataRow row = dt.NewRow(); for (int i = 0; i < reader.FieldCount; i++) { // Ignore Null fields. if (reader.IsDBNull(i)) continue; if (reader.GetFieldType(i) == typeof(String)) { row[dt.Columns[i].ColumnName] = reader.GetString(i); } else if (reader.GetFieldType(i) == typeof(Int16)) { row[dt.Columns[i].ColumnName] = reader.GetInt16(i); } else if (reader.GetFieldType(i) == typeof(Int32)) { row[dt.Columns[i].ColumnName] = reader.GetInt32(i); } else if (reader.GetFieldType(i) == typeof(Int64)) { row[dt.Columns[i].ColumnName] = reader.GetInt64(i); } else if (reader.GetFieldType(i) == typeof(Boolean)) { row[dt.Columns[i].ColumnName] = reader.GetBoolean(i); ; } else if (reader.GetFieldType(i) == typeof(Byte)) { row[dt.Columns[i].ColumnName] = reader.GetByte(i); } else if (reader.GetFieldType(i) == typeof(Char)) { row[dt.Columns[i].ColumnName] = reader.GetChar(i); } else if (reader.GetFieldType(i) == typeof(DateTime)) { row[dt.Columns[i].ColumnName] = reader.GetDateTime(i); } else if (reader.GetFieldType(i) == typeof(Decimal)) { row[dt.Columns[i].ColumnName] = reader.GetDecimal(i); } else if (reader.GetFieldType(i) == typeof(Double)) { row[dt.Columns[i].ColumnName] = reader.GetDouble(i); } else if (reader.GetFieldType(i) == typeof(float)) { row[dt.Columns[i].ColumnName] = reader.GetFloat(i); } else if (reader.GetFieldType(i) == typeof(Guid)) { row[dt.Columns[i].ColumnName] = reader.GetGuid(i); } } dt.Rows.Add(row); } reader.Close(); -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
