【发布时间】:2019-06-20 20:03:16
【问题描述】:
我做错了什么?
我正在创建一个以数据库为中心的 Windows 窗体 C# 应用程序。在我的表单应用程序中,我有 4 个文本框,可将其数据插入到一个简单的数据库表中。
如果我在 textBox1(Customer_Name) 中输入内容,然后单击名为“检查并保存”的按钮,我希望该操作检查 Customer_Name 是否存在。
如果不存在,则将数据插入数据库。
如果确实存在,它应该使用输入到 textBox1-4 的信息更新我的数据库
我有这个代码:
private void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("IF NOT EXISTS (SELECT * FROM [Customers] WHERE Customer_Name=@aa BEGIN INSERT INTO [Customers](Customer_Name,Cellphone_Number,Telephone_Number,Alternative_Number) VALUES(@aa,@bb,@cc,@dd) END ELSE BEGIN UPDATE [Customers] SET Customer_Name=@aa, Cellphone_Number=@bb, Telephone_Number=@cc, Alternative_Number=@dd END", con);
cmd.Parameters.AddWithValue("@aa", textBox1.Text);
cmd.Parameters.AddWithValue("@bb", textBox2.Text);
cmd.Parameters.AddWithValue("@cc", textBox3.Text);
cmd.Parameters.AddWithValue("@dd", textBox4.Text);
con.Close();
}
点击按钮时没有信息被输入到数据库中,也没有任何信息更新。
【问题讨论】:
-
您到底在哪里执行该命令?因为您发布的代码没有做任何事情。
-
我认为您的陈述中也缺少括号。
IF NOT EXISTS (SELECT * FROM [Customers] WHERE Customer_Name=@aa) -
您没有执行命令。你必须使用 cmd.ExecuteNonQuery()
-
另外,对于维护点,考虑使用更具描述性的名称
aa、bb、cc、dd不是。textBox1、textBox2也不是...
标签: c# sql-server