使用循环时c#中出现错误

使用循环时c#中出现错误,c#,datagridview,foreach,datatable,C#,Datagridview,Foreach,Datatable,我有这个错误# foreach语句无法对int类型的变量进行操作,因为int不包含GetEnumerator的公共定义 您希望迭代行,而不是行数的计数 foreach(var r in dataGridView1.Rows) { dt.Rows.Add(r.Cells[0].Value, r.Cells[1]); } 您希望迭代行,而不是行数的计数 foreach(var r in dataGridView1.Rows) { dt.Rows.Add(r.Cells[0].Val

我有这个错误#

foreach语句无法对
int
类型的变量进行操作,因为
int
不包含
GetEnumerator
的公共定义

您希望迭代行,而不是行数的计数

foreach(var r in dataGridView1.Rows)
{
    dt.Rows.Add(r.Cells[0].Value, r.Cells[1]);
}
您希望迭代行,而不是行数的计数

foreach(var r in dataGridView1.Rows)
{
    dt.Rows.Add(r.Cells[0].Value, r.Cells[1]);
}

删除计数并重试

private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = ord.GET_ORDER_DETAILS(textBox1.Text);
    DataTable dt = new DataTable();
    foreach(var r in dataGridView1.Rows)
    {
        dt.Rows.Add(r.Cells[0].Value, r.Cells[1]);
    }
}

删除计数并重试

private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = ord.GET_ORDER_DETAILS(textBox1.Text);
    DataTable dt = new DataTable();
    foreach(var r in dataGridView1.Rows)
    {
        dt.Rows.Add(r.Cells[0].Value, r.Cells[1]);
    }
}

我认为您不需要添加每一行,只需:

 DataTable dt = (DataTable)dataGridView1.DataSource;
如果您只需要两列,请尝试

var dtResult = ord.GET_ORDER_DETAILS(textBox1.Text);

dataGridView1.DataSource = dtResult;

DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
foreach (DataRow item in dtResult.Rows)
{
    dt.Rows.Add(item["Column1"], item["Column2"]);
}

我认为您不需要添加每一行,只需:

 DataTable dt = (DataTable)dataGridView1.DataSource;
如果您只需要两列,请尝试

var dtResult = ord.GET_ORDER_DETAILS(textBox1.Text);

dataGridView1.DataSource = dtResult;

DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
foreach (DataRow item in dtResult.Rows)
{
    dt.Rows.Add(item["Column1"], item["Column2"]);
}

您正在迭代行数,而不是行数。。。这就像声明
foreach(5中的var r)
您正在迭代行计数,而不是行。。。这就像声明
foreach(5中的var r)
尝试使用
dt.Rows.Add(r[0],r[1])
。不管怎样,您收到的错误是什么?尝试只使用
dt.Rows.Add(r[0],r[1])
。不管怎样,您收到的错误是什么?我只希望2列错误1 foreach语句不能对“System.Data.DataTable”类型的变量进行操作,因为“System.Data.DataTable”不包含“GetEnumerator”的公共定义,那么您的方法
ord.GET_ORDER_DETAILS(textBox1.Text)返回数据表?是的,我想是的。错误1无法使用[]对“object”类型的表达式应用索引错误2无法使用[]应用索引对于“object”类型的表达式,我只需要2列Error 1 foreach语句不能对“System.Data.DataTable”类型的变量进行操作,因为“System.Data.DataTable”不包含“GetEnumerator”的公共定义,所以您的方法
ord.GET\u ORDER\u DETAILS(textBox1.Text)返回数据表?是的,我想是的。错误1无法将[]索引应用于“object”类型的表达式错误2无法将[]索引应用于“object”类型的表达式