Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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#_Ms Access - Fatal编程技术网

C# 使用命名参数减少值不会';不要改变所说的价值

C# 使用命名参数减少值不会';不要改变所说的价值,c#,ms-access,C#,Ms Access,我想减少Access数据库中我的urunadedi值。我有以下代码: cmd2.Connection = con; cmd2.Parameters.AddWithValue("@urunid", Convert.ToInt64(textBox1.Text)); cmd2.Parameters.AddWithValue("@hesaplam",Convert.ToInt64(textBox2.Text)); cmd2.CommandText = @"UPDATE Table1

我想减少Access数据库中我的
urunadedi
值。我有以下代码:

cmd2.Connection = con;
cmd2.Parameters.AddWithValue("@urunid", Convert.ToInt64(textBox1.Text));
cmd2.Parameters.AddWithValue("@hesaplam",Convert.ToInt64(textBox2.Text));
cmd2.CommandText = @"UPDATE Table1
                     SET urunadedi=urunadedi-@hesaplam
                     WHERE urunadi=@urunid";
cmd2.ExecuteNonQuery();
但是字段
urunadedi
的值没有减少。这是为什么?我该如何解决



为了非土耳其读者的利益,urunadedi、urunid和urunadi大致翻译为ProductName,hesaplam大致翻译为calculate

Microsoft OLEDB忽略参数名,只注意参数在命令文本中的显示顺序。那么,为了

cmd2.CommandText=@“更新表1
设置urunadedi=urunadedi-@hesaplam
其中urunadi=@urunid”;
我们需要首先添加
@hesaplam
参数,因为它首先出现在CommandText中

cmd2.Parameters.AddWithValue(“@hesaplam”,Convert.ToInt64(textBox2.Text));
cmd2.Parameters.AddWithValue(“@urunid”,Convert.ToInt64(textBox1.Text));
还请注意,由于OLEDB参数名称被忽略,因此很常见的情况是将问号(
)用作参数占位符:

cmd2.CommandText=@“更新表1
设置urunadedi=urunadedi-?
其中urunadi=?”;
cmd2.Parameters.AddWithValue(“?”,Convert.ToInt64(textBox2.Text));//@赫萨普兰
cmd2.Parameters.AddWithValue(“?”,Convert.ToInt64(textBox1.Text));//@乌鲁尼

Microsoft OLEDB忽略参数名称,只关注参数在CommandText中的显示顺序。那么,为了

cmd2.CommandText=@“更新表1
设置urunadedi=urunadedi-@hesaplam
其中urunadi=@urunid”;
我们需要首先添加
@hesaplam
参数,因为它首先出现在CommandText中

cmd2.Parameters.AddWithValue(“@hesaplam”,Convert.ToInt64(textBox2.Text));
cmd2.Parameters.AddWithValue(“@urunid”,Convert.ToInt64(textBox1.Text));
还请注意,由于OLEDB参数名称被忽略,因此很常见的情况是将问号(
)用作参数占位符:

cmd2.CommandText=@“更新表1
设置urunadedi=urunadedi-?
其中urunadi=?”;
cmd2.Parameters.AddWithValue(“?”,Convert.ToInt64(textBox2.Text));//@赫萨普兰
cmd2.Parameters.AddWithValue(“?”,Convert.ToInt64(textBox1.Text));//@乌鲁尼

WHERE
子句中的
是否为
urunadi
?尝试交换
参数的顺序。AddWithValue
语句。(首先添加
@hesaplam
参数,然后添加
@urunid
参数。)我的兄弟非常感谢您的回答,因此受益匪浅……在
WHERE
子句中
urunadi
urunadi
吗?尝试交换
参数的顺序。AddWithValue
语句。(首先添加
@hesaplam
参数,然后添加
@urunid
参数。)我的兄弟非常感谢您的回答非常高兴,非常感谢您。。。。。。。