https://bugzilla.novell.com/show_bug.cgi?id=677096
https://bugzilla.novell.com/show_bug.cgi?id=677096#c0 Summary: Support DataTable + Mono.Data.Sqlite Classification: Mono Product: MonoDroid Version: SVN Platform: Other OS/Version: Other Status: NEW Severity: Enhancement Priority: P5 - None Component: Class Libraries AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Problem: Android 2.2 includes enough in libsqlite.so to make many uses of Mono.Data.Sqlite work, but things break when trying to use Mono.Data.Sqlite + System.Data.DataTable, because the sqlite3_column_origin_name() function is missing. See also: http://lists.ximian.com/mailman/private/monodroid/2011-February/003302.html It might be useful to fix the DataTable Load & Fill methods so that sqlite3_column_origin_name() is avoided; the above email suggests: 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
