一跳数据被更新至数据表后,数据库记录已经insert,但是前台程序还是没有查询到该跳数据。代码如下: C# code
//判断该配料单是否已经上传 string L_doc_no = dataGridView2.Rows[0].Cells[0].Value.ToString(); string sqlUser = " select * from CUX_CUT_DATA_INTERFACE cudi where cudi.doc_no= '" + L_doc_no + "'"; DataTable dataTable ; dataTable = OracleHelper.GetDataTable(connectionString, CommandType.Text, sqlUser, null); if (dataTable.Rows.Count > 1) { MessageBox.Show("该配料单数据已经发布,不能重复发布"); return; } else
以上代码中 dataTable = OracleHelper.GetDataTable(connectionString, CommandType.Text, sqlUser, null); 在不关闭当前窗口时,它总是保存第一次执行时的数据,如何能让每次都查询最新数据? 你得去看OracleHelper.GetDataTable是如何实现的
public static DataTable GetDataTable(string connectionString, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters) { OracleCommand cmd = new OracleCommand(); using (OracleConnection connection = new OracleConnection(connectionString)) { PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); using (OracleDataAdapter da = new OracleDataAdapter(cmd)) { DataTable dt = new DataTable(); da.Fill(dt); return dt; } } }学会调试 可以解决你这个问题 学会分层 会让你的代码更好 实体类会比DataTable好用 dataTable.Rows.Count>1 这种查询 根本不需要拿那么多数据调试你的 da.Fill(dt); 语句呗,看看它“实际要执行的查询语句、运行返回的结果”。
|