gpt4 book ai didi

c# - SQL Server 数据库不更新 C#

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:00 25 4
gpt4 key购买 nike

我是数据库编程和 C# 的新手。我正在使用 SQL 服务器数据库并将其连接到我的 winforms 应用程序。一切都很好,我可以添加新行,并从数据库中读取信息,但是当我尝试编辑值时,它似乎不起作用。

这是我正在使用的代码。

         private void btneUpdate_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"
Data Source = localhost;
Initial Catalog = BookStore;
Integrated Security = True;");
SqlCommand cmd;

if(MessageBox.Show("You are about to save the changes. You won't be able to undo those changes.", "Update fields", MessageBoxButtons.OKCancel) == DialogResult.Yes)
{
con.Open();
cmd = new SqlCommand(@"UPDATE Book
SET BookTitle = '"+ txteTitle.Text
+"', BookAuthorLname = '"+txteAuthorLname.Text
+"', BookAuthorFname = '"+txteAuthorFname.Text
+"', BookPrice = '"+ Convert.ToDecimal(eprice)
+"', BookDescription = '"+txteDesc.Text
+"', DatePublication = '"+dtpePublished.Value.Date
+"', BookStock = '"+ Convert.ToInt32(estock)
+"', isFiction = '"+ checkboxbool
+"', BookCategory = '"+ cmbeCategory.SelectedValue
+"' WHERE ISBN = '"+ txteISBN.Text +"';", con);
cmd.ExecuteNonQuery();
con.Close();
}

BindEdit();
BindGrid();
}

最佳答案

这部分你的台词是错误的

..... MessageBoxButtons.OKCancel) == DialogResult.Yes)

您应该检查DialogResult.OK 否则您永远不会输入更新代码

..... MessageBoxButtons.OKCancel) == DialogResult.OK)

说到这里,请稍等片刻,花点时间学习如何 create parameterized queries .这些是编写与数据库交互的代码的唯一正确方法。字符串连接确实是一种不好的做法,会导致 Sql Injection攻击

关于c# - SQL Server 数据库不更新 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29126714/

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