【发布时间】:2023-09-27 10:14:01
【问题描述】:
我有一个数据库,它有两列都是 int 类型。
一列称为“id”,另一列称为“计数器”。
我正在使用 SQLDataReader 从数据库中读取数据
int id = (int)reader3["id"];
int counter = (int)reader3["counter"];
第一个变量“id”返回细列的id值。但是第二个变量会以 System.IndexOutOfRangeException: 'counter' 错误停止执行。
我无法真正调试此错误,因为当前上下文中不存在计数器。
con.Open();
SqlCommand cmd2 = new SqlCommand("SELECT id FROM categoryData WHERE CONVERT(DATE,Date) = CONVERT(DATE,GETDATE(),103) AND category = '" +
categoryList[i] + "'", con);
cmd2.ExecuteNonQuery();
SqlDataReader reader3 = cmd2.ExecuteReader();
while (reader3.Read())
{
int id = (int)reader3["id"];
int counter = (int)reader3["counter"];
cmd2.Parameters.Clear();
con.Open();
cmd2 = new SqlCommand("UPDATE categoryData SET counter = counter+1 WHERE
id = " + id + "", con);
cmd2.ExecuteNonQuery();
dateLabel.Text = categoryBox.SelectedItem.ToString();
recordedLabel.Text = "Count is: " + counter;
break;
}
【问题讨论】:
-
显示使用的sql查询
-
我喜欢你没有在一个帖子中把你的整个项目都搞砸的事实。但是,这缺少很多代码。请添加包含 sql 的整个方法
-
好吧,你做错了,不要那样做
-
如果 code = wrong then Dont() end if?
-
reader3.Read()正在读取您未向我们展示的代码中定义的查询结果。您需要更进一步的代码块并显示该查询。