C# 更新功能(包含AddWithValue参数)赢得';行不通
我试图在一些数组上循环,通过循环,用新参数更新 这是我的代码:C# 更新功能(包含AddWithValue参数)赢得';行不通,c#,ado.net,C#,Ado.net,我试图在一些数组上循环,通过循环,用新参数更新 这是我的代码: for (int i = 0; i < wholeArr.Length - 1; i++) { string[] temp = wholeArr[i].Split('-'); UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0])); } 问题是,我没有得到任何例外,但出于某种原因,数据库没有受到影响 知道为什么吗?确定要省略
for (int i = 0; i < wholeArr.Length - 1; i++)
{
string[] temp = wholeArr[i].Split('-');
UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0]));
}
问题是,我没有得到任何例外,但出于某种原因,数据库没有受到影响
知道为什么吗?确定要省略数组中的最后一项吗 将
wholear.Length-1
更改为wholear.Length
for (int i = 0; i < wholeArr.Length; i++)
{
string[] temp = wholeArr[i].Split('-');
UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0]));
}
是否确实要省略数组中的最后一项 将
wholear.Length-1
更改为wholear.Length
for (int i = 0; i < wholeArr.Length; i++)
{
string[] temp = wholeArr[i].Split('-');
UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0]));
}
确保temp[1]是您想要的ID,temp[0]是新订单ID,并且您没有混淆它们。确保temp[1]是您想要的ID,temp[0]是新订单ID,并且您没有混淆它们。可能您的数据中没有“@ID”的值。我有@ID。这很奇怪。
temp[1]
是@ID
和temp[0]
是@OrderingNumber
?我假设在将其发送到更新库时故意使其发生故障
?可能您的数据中没有“@ID”的值。我确实有@ID。这很奇怪。temp[1]
是@ID
和temp[0]
是@OrderingNumber
?我假设在将其发送到UpdateQuery
?时故意使其出错,因此命令。ExecuteNonQuery()
返回0而不是1?那么该id在数据库中不存在,或者您混淆了id和OrderingNumber。您是否尝试在快速观察窗口中执行查询以检查返回值或查看是否引发异常?您是对的!我把id和orderingNumber混在一起了!谢谢@thormayer:那么你已经接受了另一个答案,尽管它只是发布了半个多小时?那么command.ExecuteNonQuery()
返回0而不是1?那么该id在数据库中不存在,或者您混淆了id和OrderingNumber。您是否尝试在快速观察窗口中执行查询以检查返回值或查看是否引发异常?您是对的!我把id和orderingNumber混在一起了!谢谢@thormayer:所以你接受了另一个答案,尽管它只是发布了半个多小时?
public void UpdateQuery(int id, int newOrder)
{
string sql = "update Tama38News set [OrderingNumber] = @OrderingNumber where [ID] = @ID";
using(var con = new SqlConnection(connection))
{
using(var command = new SqlCommand(sql, con))
{
con.Open();
command.Parameters.AddWithValue("@ID", id);
command.Parameters.AddWithValue("@OrderingNumber", newOrder);
command.ExecuteNonQuery();
}
}
}