Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C-Sharp中初始化访问编号字段_C#_Ms Access_Select_Sql Update - Fatal编程技术网

C# 如何在C-Sharp中初始化访问编号字段

C# 如何在C-Sharp中初始化访问编号字段,c#,ms-access,select,sql-update,C#,Ms Access,Select,Sql Update,我知道如何在字符串字段的Access查询中使用文本框值,但我无法理解如何在int字段中使用它 我正在编写以下查询并接收错误消息 错误消息:没有为一个或多个必需参数提供值 我还尝试将textBox2转换为int,但它也给了我一条错误消息 输入字符串的格式不正确 这个答案纠正了您的问题 首先,Name的文本框与ID的文本框不同 其次,不要连接字符串以生成sql命令。它非常容易出错,并且容易受到一个众所周知的sql漏洞的攻击,该漏洞名为 这里我删除了字符串连接并插入了两个参数占位符(?), 然后,我向

我知道如何在字符串字段的Access查询中使用文本框值,但我无法理解如何在int字段中使用它

我正在编写以下查询并接收错误消息

错误消息:没有为一个或多个必需参数提供值

我还尝试将textBox2转换为int,但它也给了我一条错误消息

输入字符串的格式不正确


这个答案纠正了您的问题
首先,Name的文本框与ID的文本框不同
其次,不要连接字符串以生成sql命令。它非常容易出错,并且容易受到一个众所周知的sql漏洞的攻击,该漏洞名为

这里我删除了字符串连接并插入了两个参数占位符(?), 然后,我向OleDbCommand添加了两个参数及其值。

执行查询时,OleDb代码将用实际值替换占位符,检查是否存在无效字符和无效sql语句

您是否真的对名称和id使用了相同的文本框?lol抱歉,谢谢:)我的代码正在运行,但我还有一个问题,我没有将文本框字段转换为INT,但它仍然接受自动编号字段的值。您没有将文本框括在单引号中。引擎这样解释您的查询<代码>更新表1集合名称='Steve',其中ID=1,这是正确的语法。不过,我将发布一个关于您应该如何编写查询的示例我的代码现在正在运行,但我还有一个问题,我没有将文本框字段转换为INT,但它仍然接受自动编号字段的值。
OleDbCommand cmd = new OleDbCommand("Update Table1 Set Name= '" + textBox2.Text + "' where ID= " +textBox2.Text  , conn);
conn.Open();
cmd.ExecuteNonQuery();
int Id= Convert.ToInt16(textBox2.Text);
OleDbCommand cmd = new OleDbCommand("Update Table1 Set Name= '" + textBox2.Text + "' where ID= " + Id  , conn);
conn.Open();
cmd.ExecuteNonQuery();
string queryText = Update Table1 Set Name= ? where ID= ?"; 
OleDbCommand cmd = new OleDbCommand(queryText, conn);
cmd.Parameters.AddWithValue("@p1", TextBox1.Text);
cmd.Parameters.AddWithValue("@p2", Convert.ToInt32(TextBox2.Text));
conn.Open();
cmd.ExecuteNonQuery();