Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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# 位置1没有行_C#_Sql Server 2008 - Fatal编程技术网

C# 位置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) {

我正在创建一个窗口窗体并运行此代码,第一次我在datagirdview中正确添加了avalue,但第二次我试图在datagirdview中添加值,但出现了此错误

位置1处没有行。 这条线

        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