在Sqlite表中插入null

我试图找出如何在Android中的SQLite表中插入一个空值。

这是表格:

"create table my table (_id integer primary key autoincrement, " + "deviceAddress text not null unique, " + "lookUpKey text , " + "deviceName text , " + "contactName text , " + "playerName text , " + "playerPhoto blob " + ");"; 

我想通过execSQL使用一个简单的插入命令,但由于其中一个值是blob我不能这样做(我认为)。

所以,我正在使用一个标准的db.Insert命令。 我如何使其中一个值为空?

如果我只是在ContentValues对象中跳过它,它会自动在列中放置一个空值?

Solutions Collecting From Web of "在Sqlite表中插入null"

是的,你可以跳过ContentValues中的字段,db.insert将它设置为NULL。 您也可以使用其他方式:

 ContentValues cv = new ContentValues(); cv.putNull("column1"); db.insert("table1", null, cv); 

这个directrly设置“column1”NULL。 你也可以在update语句中使用这种方式。

您可以使用ContentValues.putNull(String key)方法。

我认为你可以跳过它,但你也可以把null,只要确保当你第一次创build数据库时,你不要声明列为“NOT NULL”。

在你的插入查询string命令中,你可以为你希望为null的值插入null。 这是C#,因为我不知道如何为Android设置数据库连接,但查询将是相同的,所以我已经给出了说明的目的,我相信你可以等同于你自己的:

 SQLiteConnection conn = new SQLiteConnection(SQLiteConnString()); // where SQLiteConnString() is a function that returns this string with the path of the SQLite DB file: // String.Format("Data Source={0};Version=3;New=False;Compress=True;", filePath); try { using (SQLiteCommand cmd = conn.CreateCommand() { cmd.CommandText = "INSERT INTO MyTable (SomeColumn) VALUES (null)"; cmd.ExecuteNonQuery(); } } catch (Exception ex) { // do something with ex.ToString() or ex.Message }