C# 位置1没有行
我正在创建一个窗口窗体并运行此代码,第一次我在datagirdview中正确添加了avalue,但第二次我试图在datagirdview中添加值,但出现了此错误 位置1处没有行。 这条线C# 位置1没有行,c#,sql-server-2008,C#,Sql Server 2008,我正在创建一个窗口窗体并运行此代码,第一次我在datagirdview中正确添加了avalue,但第二次我试图在datagirdview中添加值,但出现了此错误 位置1处没有行。 这条线 double b = Convert.ToDouble(dt.Rows[count][1]); int count = 0; private void button1_Click(object sender, EventArgs e) {
double b = Convert.ToDouble(dt.Rows[count][1]);
int count = 0;
private void button1_Click(object sender, EventArgs e)
{
id = Convert.ToInt32(txt_item.Text);
date = DateTime.Now;
string q = "select pro_name , amount from Product where pro_id = " + id ;
dt = g.selectQuery(q);
if (dt.Rows.Count > 0)
{
if (!dt.Columns.Contains("Quantity selected"))
{
dt.Columns.Add("Qty");
}
if (!dt.Columns.Contains("Total"))
{
dt.Columns.Add("Total");
}
double b = Convert.ToDouble(dt.Rows[count][1]);
dt.Rows[count][2] = 1;
dt.Rows[count][3] = 1*b;
dataGridView1.DataSource = dt;
count++;
}
}
你应该这样写:
dt.Rows[dt.Rows.Count-1][1]
问题是计数是全局的,如果单击按钮两次,计数的值将为1。在这种情况下,如果Rows.Count为1,则在数据表中只有行[0]
因为这样写:dt.Rows[dt.Rows.Count-1][1]
或dt.Rows[0][1]
您有一个全局变量Count
;
它从零开始,然后递增到一
如果查询在第二次运行时只返回一行,那么该行将位于索引0,而不是1