首页 新闻 会员 周边

怎么向sqlite表中插入数据库为null的值?

0
悬赏园豆:20 [已解决问题] 解决于 2010-07-12 16:51

id列为自动增长列,我试了,DBNull.Value不行,null不行,""不行这能试的我几乎都试了,但在sqlite里我写插入语句的时候id列写成null就行,这是咋回事呢?

墨墨的主页 墨墨 | 菜鸟二级 | 园豆:250
提问于:2010-07-12 09:19
< >
分享
最佳答案
0

SQLite很神经,用SQL命令和用程序访问往往有不同的操作方式,我也在用,前阵子那个GUID差点搞死我!

Column Name DataType Allow Nulls
================================================
MyId      integer  
MyValue     nvarchar(50) 

 

using (SQLiteConnection conn = new SQLiteConnection("data source=\"d:\\test\""))
{
conn.Open();

string SQL_INSERT_TABLE1 = "INSERT INTO Table1 (MyValue) VALUES (@MyValue)";

using (SQLiteCommand cmd = new SQLiteCommand(SQL_INSERT_TABLE1, conn))
{
cmd.Parameters.Add(new SQLiteParameter("MyValue""Test"));

cmd.ExecuteNonQuery();
}
}
收获园豆:20
TinyTian | 菜鸟二级 |园豆:385 | 2010-07-12 13:50
有遇到过从程序里面去插入带有自动增长列的问题吗?
墨墨 | 园豆:250 (菜鸟二级) | 2010-07-12 14:28
不知道你是怎么弄的,我测试没有问题啊,给你代码: Column Name DataType Allow Nulls ================================================ MyId integer MyValue nvarchar(50) using (SQLiteConnection conn = new SQLiteConnection("data source=\"d:\\test\"")) { conn.Open(); string SQL_INSERT_TABLE1 = "INSERT INTO Table1 (MyValue) VALUES (@MyValue)"; using (SQLiteCommand cmd = new SQLiteCommand(SQL_INSERT_TABLE1, conn)) { cmd.Parameters.Add(new SQLiteParameter("MyValue", "Test")); cmd.ExecuteNonQuery(); } }
TinyTian | 园豆:385 (菜鸟二级) | 2010-07-12 16:38
非常感谢你的代码。其实创建表的时候这样搞就好了,浪费我很多时间 CREATE TABLE [LOGS] ( [LogID] INTEGER PRIMARY KEY NOT NULL, [LogTitle] VARCHAR(100), [LogContent] text, [LogType] INT NOT NULL DEFAULT 0, [LogAddTime] string, [InfoType] int );
墨墨 | 园豆:250 (菜鸟二级) | 2010-07-12 16:49
@墨墨:你该不是允许自增列为空吧,这种设计从开头就是有问题的哦! cnblogs这个问答系统真扯淡!一个人不能回答多次!
TinyTian | 园豆:385 (菜鸟二级) | 2010-07-12 16:53
其他回答(3)
0

自增长列为null,楼主想做什么?

如果你用语句可以,那么这个ID列为null的值已经存在了,自然不能再在程序中插入一个ID列为null的值。

邀月 | 园豆:25475 (高人七级) | 2010-07-12 09:31
如果不插入,会提示少一列,就不给插入,即时在数据库里也会提示。
支持(0) 反对(0) 墨墨 | 园豆:250 (菜鸟二级) | 2010-07-12 09:51
0

没用过,按理解不是自动的吗。

Astar | 园豆:40805 (高人七级) | 2010-07-12 15:04
0

这个可以啊,但是我用的时候出现了一个问题。用C#访问SQLite数据库,就会出现乱码啊。在连接字符串中指定了编码格式,encoding=UTF8;你知道是怎么回事嘛。帮我看看。

新瓶老酒 | 园豆:181 (初学一级) | 2010-10-02 13:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册