C# 我想从datagrideview中的invo获取价格,其中rows=column(main)
我想从发票那里得到价格C# 我想从datagrideview中的invo获取价格,其中rows=column(main),c#,C#,我想从发票那里得到价格 rows = column(main) 我使用这些代码将价格填入dgRow.Cells[5]。Value 当我点击按钮时,我有一条记录 private void button11_Click(object sender, EventArgs e) { foreach (DataGridViewRow dgRow in dgw.Rows) { string name = dgR
rows = column(main)
我使用这些代码将价格填入dgRow.Cells[5]。Value
当我点击按钮时,我有一条记录
private void button11_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow dgRow in dgw.Rows)
{
string name = dgRow.Cells[1].Value.ToString();
con.Close();
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "select price from invo where main='"+name+"' '";
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr.IsDBNull(0))
{
}
else
{
dgRow.Cells[5].Value = (rdr.GetDecimal(0).ToString());
return;
}
}
}
我相信您的代码应该是这样的:
foreach (DataGridViewRow dgRow in dgw.Rows)
{
string name = dgRow.Cells[1].Value.ToString();
con.Close();
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "select price from invo where main='"+name+"' '";
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr.IsDBNull(0))
{
}
else
{
dgRow.Cells[5].Value = (rdr.GetDecimal(0).ToString());
break; //return; Get you out of the function, additional
//rows are not evaluated
}
}
}
在while循环中使用“return”会使您退出函数,因此不会处理下一行。您只有一条记录,因为您在第一条记录之后执行了
return
。