读书人

c#在sqlite下怎么存储文件

发布时间: 2012-05-31 12:19:24 作者: rapoo

c#在sqlite下如何存储文件?
字段的类型是iamge还是blob。为啥我在新增的时候会出错

#region Sql脚本
var sql = @"INSERT INTO [Cust_MMSAccessaryTB](
[MMSAccessaryID]
,[FileContent]
,[FileName]
,[FileExtension]
)VALUES(
@AccessaryID
,@FileContent
,@FileName
,@FileExtension
)";
#endregion

//取得附件表表最大唯一标识
entity.MMSAccessaryID = DbHelper.Instance.GetMaxID("Cust_MMSAccessaryTB");

//参数列表
var parameters = new List<SQLiteParameter>()
{
new SQLiteParameter("MMSAccessaryID", entity.MMSAccessaryID),
new SQLiteParameter("FileContent", entity.FileContent),
new SQLiteParameter("FileName", entity.FileName),
new SQLiteParameter("FileExtension", entity.FileExtension)
};


//执行操作
result.IsOK = DbHelper.ExecuteNonQuery(sql, parameters.ToArray()) > 0;


[解决办法]
SQLite有IMAGE类型吧。好像只有BLOB
[解决办法]
保存路径吧。
[解决办法]
VALUES 后面跟的 @AccessaryID 等,换成 :AccessaryID
[解决办法]
SQLite的参数前导符号就是@。不过创建参数那里倒是有问题,应该是

C# code
  //参数列表  var parameters = new List<SQLiteParameter>()  {  new SQLiteParameter("@AccessaryID", entity.MMSAccessaryID),  new SQLiteParameter("@FileContent", entity.FileContent),  new SQLiteParameter("@FileName", entity.FileName),  new SQLiteParameter("@FileExtension", entity.FileExtension)  };
[解决办法]
参数要跟sql语句对应。另外不知道lz的DbHelper.Instance.GetMaxID方法是怎么样的,如果是返回表主键的最大值的话应该+1后再付给entity插入到数据库中

读书人网 >C#

热点推荐