【发布时间】:2018-08-10 19:58:25
【问题描述】:
有一个名为qty 的字段。我想对具有相同发票编号的多行求和。
String sql = "select sum(qty) from pur_invo_tran where invo_no='"+dataGridView1.Rows[i].Cells[1].Value+"' and doi=#"+Convert.ToDateTime(dataGridView1.Rows[i].Cells[0].Value.ToString())+"#";
OleDbConnection con = new OleDbConnection();
con.ConnectionString = constr;
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataReader Reader = null;
try
{
con.Open();
int b = (int)cmd.ExecuteScalar();
dataGridView1.Rows[i].Cells[2].Value = b.ToString("## ## ## ###.##").Trim().Replace(" ", ",");
con.Close();
}
catch (Exception ee)
{
MessageBox.Show("Error..." + ee.Message);
}
【问题讨论】:
-
我的发票号码是
56'; drop table pur_invo_tran; -- -
另外,当您运行刚刚粘贴的代码时会发生什么?我认为它除了给你你想要的总和之外还有其他的作用。
-
ExecuteNonQuery返回受影响的行数,这绝对不是发票的总和,也可能不是您想要将网格单元格值设置为的值。 -
使用参数... 您的查询的当前版本使用日期,但未指定格式。可能
invo_no(使用字符串分隔符)或该日期格式错误。