首页新闻找找看学习计划

C# 操作sqlite

0
[待解决问题]

在针对于sqlite的Binary字段类型操作的时候,用sql语句操作Insert后,取出的数据就会发生错误。

sql语句:string sql = string.Format("Insert into sys_Entlib(EntlibName,EntlibVersion,EntlibConfig) values('{0}','{1}','{2}')", entlib.EntlibName, entlib.EntlibVersion, entlib.EntlibConfig);

读取时的错误:在分析完成之前就遇到流结尾。  

查看代码中发现,byte[]得到的数据少了一大部分。

 

而改用:

SQLiteCommand cmd = new SQLiteCommand();                  

string sql = "Insert into sys_Entlib(EntlibName,EntlibVersion,EntlibConfig) values(@ent_name,@ent_version,@ent_config)";                    

 cmd.CommandText = sql;                    

cmd.Parameters.Add("@ent_name", DbType.String).Value = entlib.EntlibName;  

cmd.Parameters.Add("@ent_version", DbType.String).Value = entlib.EntlibVersion;  

cmd.Parameters.Add("@ent_config", DbType.Binary).Value = EntlibConfigModel.SerializableConfig(entlib.EntlibConfig);

则不会有错误,读取正常。

数据Insert都成功,没有问题。用sql主要是读取数据的时候发生错误,请教下达人们。为什么不能用sql语句直接插入呢?

caitou的主页 caitou | 初学一级 | 园豆:0
提问于:2011-11-24 23:49
< >
分享
所有回答(1)
0

使用SQLiteParameter操作一般没有问题,官网提供的test程序,包括了各种操作的测试,代码值得参考

http://topic.csdn.net/u/20081024/09/9b2bf0ad-ec15-4b00-9994-3124038ba329.html

http://www.codeproject.com/Questions/56109/Reading-BLOB-in-Sqlite-using-Csharp-NET-CF-3-5-PPC.aspx

2012 | 园豆:18932 (专家六级) | 2011-11-25 08:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册