检查表是否为空后插入数据
本文关键字:插入 数据 是否 检查表 | 更新日期: 2023-09-27 18:16:01
我有一个服务器程序,它将存储客户端发送的某些数据。一个数据是客户机的主机名。服务器将检查主机名是否存在,如果不存在,则插入新数据。它应该是这样的。
hostname_id | hostname
------------------------
1 | Admin
2 | Guest_PC
3 | Bob_PC2
我的问题是它不会存储新插入的数据。它一直返回0,但不存储任何东西。这是我的代码。(修改为正确版本)
string constring = "Database=chtbuster;Data Source=localhost;User Id=root;Password=''";
string count1 = "SELECT COUNT(hostName) FROM chtbuster.hostnametable WHERE hostName=@machineName ";
using (MySqlConnection conDataBase = new MySqlConnection(constring))
{
MySqlCommand cmd1Database = new MySqlCommand(count1, conDataBase);
conDataBase.Open();
long count = (long)cmd1Database.ExecuteScalar();
if (count == 0)
{
string insert_ht = "INSERT INTO chtbuster.hostnametable(hostName) VALUES(@machineName);";
MySqlCommand cmd5Database = new MySqlCommand(insert_ht, conDataBase);
cmd5Database.Parameters.AddWithValue("@machineName", machineName);
cmd5Database.ExecuteNonQuery();
//*test* output.Text += "'n Empty " + count;
}
else
{
//not empty, insert other data
}
}
我以前写过PHP数据库,是c#数据库的新手,我很困惑。请帮助。谢谢你。
您可以使用EXISTS:
一步完成此操作IF NOT EXISTS (SELECT hostName FROM chtbuster.hostnametable WHERE hostName=@machineName)
INSERT INTO chtbuster.hostnametable(hostName_id) VALUES(@machineName);
正如在注释中提到的,您需要执行查询以获得结果。