Try catch 永远不会进入 catch 块
Try catch never enters catch block
下面代码的问题是我从未看到我的 catch
代码执行。如果我的 ID 不存在,它会显示一个空的数据网格。出了什么问题?
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
this.Cursor = Cursors.WaitCursor;
SqlConnectie vandaag = new SqlConnectie();
vandaag.Connection();
SqlDataAdapter sda = new SqlDataAdapter("select ID, VERSIE, SB, NAAM, M_DATUM, V_DATUM from RE1 where ID=" + tbRecept.Text, SqlConnectie.conn);
DataTable dt = new DataTable();
sda.Fill(dt);
dgvTemp.DataSource = dt;
SqlConnectie.conn.Close();
this.Cursor = Cursors.Default;
}
catch
{
MessageBox.Show("ID doesn't exist");
}
}
如果没有从数据库中 returned 的行,为什么会出现异常?得到一个空的结果集是完全有效的,数据适配器将 return 一个空的 DataTable
.
你可以检查一下:
DataTable dt = new DataTable();
sda.Fill(dt);
dgvTemp.DataSource = dt;
if(dt.Rows.Count == 0)
MessageBox.Show("ID doesn't exist");
下面代码的问题是我从未看到我的 catch
代码执行。如果我的 ID 不存在,它会显示一个空的数据网格。出了什么问题?
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
this.Cursor = Cursors.WaitCursor;
SqlConnectie vandaag = new SqlConnectie();
vandaag.Connection();
SqlDataAdapter sda = new SqlDataAdapter("select ID, VERSIE, SB, NAAM, M_DATUM, V_DATUM from RE1 where ID=" + tbRecept.Text, SqlConnectie.conn);
DataTable dt = new DataTable();
sda.Fill(dt);
dgvTemp.DataSource = dt;
SqlConnectie.conn.Close();
this.Cursor = Cursors.Default;
}
catch
{
MessageBox.Show("ID doesn't exist");
}
}
如果没有从数据库中 returned 的行,为什么会出现异常?得到一个空的结果集是完全有效的,数据适配器将 return 一个空的 DataTable
.
你可以检查一下:
DataTable dt = new DataTable();
sda.Fill(dt);
dgvTemp.DataSource = dt;
if(dt.Rows.Count == 0)
MessageBox.Show("ID doesn't exist");