gpt4 book ai didi

c# - 检查表是否为空后插入数据

转载 作者:行者123 更新时间:2023-11-29 11:57:35 29 4
gpt4 key购买 nike

我有一个服务器程序,它将存储客户端发送的某些数据。一项数据是客户端的主机名。服务器将检查主机名是否存在,如果不存在,则会插入新数据。它应该看起来像这样。

hostname_id | hostname
------------------------
1 | Admin
2 | Guest_PC
3 | Bob_PC2

我的问题是它不会存储新插入的数据。它不断返回零但不存储任何内容。这是我的代码。(编辑为正确的版本)

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);

正如评论中提到的,您需要执行查询才能获得结果。

关于c# - 检查表是否为空后插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953256/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com