检查Sqlite C中是否存在记录#
发布时间:2020-12-12 19:06:03 所属栏目:百科 来源:网络整理
导读:我正在尝试检查表中的记录是否已存在. 我怎么能这样做? 我已经写了以下代码: string dbName = "Data Source=searchindex.db";SQLiteConnection con = new SQLiteConnection(dbName);con.Open();SQLiteCommand cmd = new SQLiteCommand(con);// If this sql
我正在尝试检查表中的记录是否已存在.
我怎么能这样做? 我已经写了以下代码: string dbName = "Data Source=searchindex.db"; SQLiteConnection con = new SQLiteConnection(dbName); con.Open(); SQLiteCommand cmd = new SQLiteCommand(con); // If this sql request return false cmd.CommandText = "SELECT rowid FROM wordlist WHERE word='word'"; cmd.ExecuteNonQuery(); // then add record in table cmd.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将返回查询返回的第一行的第一列. 另一种使用方法如下 cmd.CommandText = "INSERT INTO wordlist (word) SELECT ('word') WHERE NOT EXISTS (SELECT 1 FROM wordlist WHERE word = 'word');"; cmd.ExecuteNonQuery(); 这甚至更好,因为您使用单个查询而不是两个(尽管本地数据库中的差异应该是最小的) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |