更新查询无法正常工作c#winform
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新查询无法正常工作c#winform相关的知识,希望对你有一定的参考价值。
我的数据未在数据库表中更新。这是我的代码
string marks = textBox1.Text.ToString() + "," + textBox2.Text.ToString() + "," + textBox3.Text.ToString() + "," + textBox4.Text.ToString() + "," + textBox5.Text.ToString();
string subjects = label5.Text.ToString() + "," + label6.Text.ToString() + "," + label7.Text.ToString() + "," + label8.Text.ToString() + "," + label9.Text.ToString();
string total = label11.Text.ToString();
string percentage = label13.Text.ToString();
string id = textBox1.Text.ToString();
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=C:UsersTECHNOGEEKZDesktopUSSv0.1USSv0.1USSv0.1dbDatabase.mdf;Integrated Security=True");
con.Open();
if (con.State == ConnectionState.Open)
{
string q = "UPDATE marks SET subjects='" + subjects + "',smarks='" + marks + "',percentage='" + percentage + "',total='" + total + "' WHERE idno='" + id + "'";
SqlCommand com = new SqlCommand(q, con);
com.ExecuteNonQuery();
MessageBox.Show("Marks have been updated");
}
这是我想要更新数据的表格
CREATE TABLE [dbo].[marks]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[idno] INT NULL,
[subjects] VARCHAR (MAX) NULL,
[smarks] VARCHAR (MAX) NULL,
[percentage] VARCHAR (50) NULL,
[total] VARCHAR (50) NULL
);
答案
使用参数可以有意或无意地避免SQL注入攻击。它可能会导致您的错误,具体取决于连接字符串中的值。
不相关的提示:SqlConnection
和SqlCommand
and是IDisposable
所以应该在using
块。 if
测试应该是多余的,因为如果失败,Open会抱怨。在Text属性上调用的所有ToString方法都是多余的,因为它们已经是字符串。考虑为此问题添加sql-server标签,以确定正确的专业知识。
另一答案
您正在使用此查询
"UPDATE marks SET subjects='" + subjects + "',smarks='" + marks + "',percentage='" + percentage + "',total='" + total + "' WHERE idno='" + id + "'";
这里你在id中使用'',而通常id是整数数据类型。所以id不会出现在引号中。还要检查最终查询并在mssql中运行最终查询。这不会是因为这个错误。
以上是关于更新查询无法正常工作c#winform的主要内容,如果未能解决你的问题,请参考以下文章