Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存图像SQLite数据库_Java_Android_Sqlite - Fatal编程技术网

Java 保存图像SQLite数据库

Java 保存图像SQLite数据库,java,android,sqlite,Java,Android,Sqlite,您好,我有一个工作正常的SQLite数据库,我添加了一个名为Image的列,其中包含数据类型Blob。然后,我允许用户从他们的图库中选择一个图像,并从中将其更改为URi,然后更改为字节[],但当我尝试保存数据时,没有收到错误消息,但数据没有保存,我不知道为什么 有什么帮助吗 我的查询用于创建表 public String CREATEQUERY = "CREATE TABLE " + TableData.TableInfo.TABLE_NAME + "("+ TableData.TableIn

您好,我有一个工作正常的SQLite数据库,我添加了一个名为Image的列,其中包含数据类型Blob。然后,我允许用户从他们的图库中选择一个图像,并从中将其更改为URi,然后更改为字节[],但当我尝试保存数据时,没有收到错误消息,但数据没有保存,我不知道为什么

有什么帮助吗

我的查询用于创建表

 public String CREATEQUERY = "CREATE TABLE " + TableData.TableInfo.TABLE_NAME + "("+ TableData.TableInfo.USERNAME + " TEXT," + TableData.TableInfo.PASSWORD + " TEXT," + TableData.TableInfo.IMAGE + "BLOB);";
我的插入方法

public void InsertData (DatabasOpperations DBOpp, String Name, String Password, byte[] Image){
    SQLiteDatabase SQL = DBOpp.getWritableDatabase();
    ContentValues ContentV = new ContentValues();
    ContentV.put(TableData.TableInfo.USERNAME, Name);
    ContentV.put(TableData.TableInfo.PASSWORD, Password);
    ContentV.put(TableData.TableInfo.IMAGE, Image);
    long Insert = SQL.insert(TableData.TableInfo.TABLE_NAME, null, ContentV);
    Cursor Cur = SQL.query(TableData.TableInfo.TABLE_NAME, null, null, null, null, null, null);
    int Res = Cur.getCount();
    int Res2 = Cur.getColumnIndex(TableData.TableInfo.IMAGE);
    Log.d("DatabaseOperations", "Success, 1 Row Added");
    Log.d("DatabaseOperations", "Num " + Res);
    Log.d("DatabaseOperations", "Num " + Res2);

}
调用此方法并保存数据的java类

DB.InsertData(DB, Uname, Pass, DBByte);
Toast.makeText(getApplicationContext(), "Success, Registered!", Toast.LENGTH_SHORT).show();
Intent Home = new Intent(Reg.this, MainActivity.class);
startActivity(Home);
finish();
DBByte是一个

public byte[] DBByte;
图像将从Uri转换为字节[]

public void onActivityResult(int RequestCode, int ResultCode, Intent Data) {
    if (ResultCode == RESULT_OK) {
        if (RequestCode == SELECTED) {
            Uri SelectedImageUri = Data.getData();
            SelectedImagePath = getPath(SelectedImageUri);
            Log.d("DatabaseOperations", "Image Path :  " + SelectedImagePath);
            Img.setImageURI(SelectedImageUri);

            try {
                FileInputStream FileInpStream = new FileInputStream(SelectedImagePath);
                BufferedInputStream BufInputStream = new BufferedInputStream(FileInpStream);
                DBByte = new byte[BufInputStream.available()];
                BufInputStream.read(DBByte);
                Log.d("DatabaseOperations", "Image Size :  " + DBByte.length + " KB");
            }

            catch (IOException e) {
                Log.d("DatabaseOperations", "Error :  " + SelectedImagePath);
            }
        }
    }
}

这里缺少一个空格,因此没有BLOB列

TableInfo.IMAGE + "BLOB);"

请发布您的代码。好的,我会用codeSQL来修改这个问题。SQL数据库并不是专门为存储图像或大字节数组BLOB而设计的。我可以尝试将图像文件路径保存为字符串,但我想我会尝试一下这样做,有什么帮助吗?这里缺少一个空格
TableInfo.image+“BLOB)