我怎么能这样做?
我已经写了以下代码:
string dbname = "Data Source=searchindex.db";sqliteConnection con = new sqliteConnection(dbname);con.open();sqliteCommand cmd = new sqliteCommand(con);// If this sql request return falsecmd.CommandText = "SELECT rowID FROM wordList WHERE word='word'"; cmd.ExecuteNonquery();// then add record in tablecmd.CommandText = "INSERT INTO wordList(word) VALUES ('word')";要检查该记录是否存在,您可以简化代码
cmd.CommandText = "SELECT count(*) FROM wordList WHERE word='word'"; int count = Convert.ToInt32(cmd.ExecuteScalar());if(count == 0){ cmd.CommandText = "INSERT INTO wordList(word) VALUES ('word')"; cmd.ExecuteNonquery();}
ExecuteScalar将返回查询返回的第一行的第一列.
(该链接适用于sqlServer,但它与sqlite完全相同,因为sqliteCommand应该实现IDbCommand接口)
另一种使用方法如下
cmd.CommandText = "INSERT INTO wordList (word) SELECT ('word') WHERE NOT EXISTS (SELECT 1 FROM wordList WHERE word = 'word');";cmd.ExecuteNonquery();
这甚至更好,因为您使用单个查询而不是两个(尽管本地数据库中的差异应该是最小的)
总结以上是内存溢出为你收集整理的检查Sqlite C中是否存在记录#全部内容,希望文章能够帮你解决检查Sqlite C中是否存在记录#所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)