我试图遍历一些数组,然后用新参数进行更新..
这是我的代码:
for (int i = 0; i < wholeArr.Length - 1; i++)
{
string[] temp = wholeArr[i].Split('-');
UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0]));
}
这是我的更新功能:
public void UpdateQuery(int id, int newOrder)
{
string sql = "update Tama38News set [OrderingNumber] = @OrderingNumber where [ID] = @ID";
con = new SqlConnection(connection);
con.Open();
adapter = new SqlDataAdapter();
command = new SqlCommand(sql, con);
command.Parameters.AddWithValue("@ID", id);
command.Parameters.AddWithValue("@OrderingNumber", newOrder);
command.ExecuteNonQuery();
con.Close();
}
事情是,我没有得到任何例外,但由于某种原因,DB不会受到影响..
任何想法为什么?
答案 0 :(得分:3)
您确定要省略数组中的最后一项吗?
将wholeArr.Length - 1
更改为wholeArr.Length
for (int i = 0; i < wholeArr.Length; i++)
{
string[] temp = wholeArr[i].Split('-');
UpdateQuery(int.Parse(temp[1]), int.Parse(temp[0]));
}
也许只有一个项目,因此从未调用过UpdateQuery方法。您可以使用调试器来检查发生了什么。在循环中设置断点,然后按F10转到下一行。在快速监视窗口中检查值。
除此之外,您应该始终处置任何实现IDisposable
的内容,尤其是using-statement
最佳连接。
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();
}
}
}
答案 1 :(得分:1)
确保temp [1]实际上是您想要的ID,temp [0]是newOrder id,并且您没有将它们混合起来。