C# 在Sqlite数据库中将默认图像设置为列
在我的项目中,我使用System.Data.Sqlite。我想创建一个带有image列的表。我正在设置默认图像,即NoImageAvailable。但它给了我错误,即SQL逻辑错误或@img:syntax错误附近缺少数据库。这是我的密码C# 在Sqlite数据库中将默认图像设置为列,c#,.net,winforms,system.data.sqlite,C#,.net,Winforms,System.data.sqlite,在我的项目中,我使用System.Data.Sqlite。我想创建一个带有image列的表。我正在设置默认图像,即NoImageAvailable。但它给了我错误,即SQL逻辑错误或@img:syntax错误附近缺少数据库。这是我的密码 byte[] img = null; try { img = File.ReadAllBytes(Application.StartupPath +
byte[] img = null;
try
{
img = File.ReadAllBytes(Application.StartupPath +
@"\Resources\General_Images\NOPHOTO.jpg");
}
catch { }
string qry = "CREATE TABLE [CLIENT_MSTR] " +
"([ID] INTEGER IDENTITY," +
"[CLIENT_ID] INTEGER PRIMARY KEY," +
"[ABBR] VARCHAR(3) DEFAULT '" + string.Empty + "' UNIQUE," +
"[PHOTO] BLOB DEFAULT @img)";
SQLiteCommand cmd = new SQLiteCommand(qry, m_dbConnection);
cmd.Prepare();
cmd.Parameters.Add("@img", DbType.Binary, img.Length);
cmd.Parameters["@img"].Value = img;
try
{
cmd.ExecuteNonQuery();
}
catch { }
怎么了?我怀疑您能否在DDL语句中参数化blob。他们说: BLOB文本是包含十六进制数据和 前面有一个x或x字符。示例:X'53514C697465' 我不知道你是否可以用这种格式包含图像数据;转换为X'..'格式可能不是问题,但是创建和馈送如此长的字符串可能很棘手。理论上,有一种方法可以控制它: SQLITE_省略_BLOB_文字
When this option is defined, it is not possible
to specify a blob in an SQL statement using the X'ABCD' syntax.
也排除了它,至少通过参数
如果你设法让它在一个文字工作,请在这里张贴它