为BLOB数据类型插入空值



我试图插入空值时,变量真的有空值。这是将数据添加到数据库的方法

public long  addData(String text,String date, String location,byte[] smiley,byte[] image, byte[] audio, byte[]  video)  {
        ContentValues cv = new ContentValues();
        cv.put(KEY_TEXT, text);
        cv.put(KEY_DATE, date);
        cv.put(KEY_LOCATION, location);
        if(smiley==null || image==null||  audio==null|| video==null)
        {
            if(smiley==null)
            {
                cv.putNull(KEY_SMILEY);
            }
            else
            {
                cv.put(KEY_SMILEY, smiley);
            }
            if(image==null)
            {
                cv.putNull(KEY_IMAGE);
            }
            else
            {
                cv.put(KEY_IMAGE, image);
            }
            if(audio==null)
            {
                cv.putNull(KEY_AUDIO);

            }
            else
            {
                cv.put(KEY_AUDIO, audio);

            }
            if(video==null)
            {
                cv.putNull(KEY_VIDEO);
            }
            else
            {
                cv.put(KEY_VIDEO, video);
            }
        }


        long val=ourDatabase.insertOrThrow(TABLE_NAME, null, cv);
        return val;
    }

使用

创建表
@Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(" CREATE TABLE " + TABLE_NAME + "( "+ KEY_TEXT + " TEXT NOT NULL, " +
                    KEY_DATE + " TEXT NOT NULL UNIQUE, " +
                    KEY_LOCATION + " TEXT , " +KEY_SMILEY+ " BLOB, " 
                    + KEY_IMAGE + " BLOB , " + KEY_AUDIO + " BLOB, " 
                    + KEY_VIDEO + " BLOB, " + KEY_ID+" INTEGER  PRIMARY KEY "+");"
                    );
        }

但不幸的是它抛出了异常android.database.sqlite.SQLiteConstraintException: Diary.smiley may not be NULL (code 19)

似乎您在创建数据库的字段上放置了一个约束(NOT NULL),这阻止了您插入NULL。您可能希望提供用于创建表的代码。

相关内容

  • 没有找到相关文章

最新更新