日期:2014-05-18  浏览次数:20741 次

请教高手--如何写自己想要的异常
当点击一个button时,进行数据库的查询,当数据库中没有所要的查询内容时,弹出对话框,提示错误信息,而不是显示 不存在此行列的数据 的异常。代码如下:


*****************************************************************************************************************
private void button4_Click(object sender, EventArgs e)//搜索要更改的投资方名称
{
//建立连接
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=GuoShuiJu.mdb";
OleDbConnection conn = new OleDbConnection(strConnection);
conn.Open();


//access数据库 搜索投资方信息表 命令
string sql1 = "select * from 投资方信息表 where 投资方名称='" + textBox11.Text.ToString().Trim() + "'";
OleDbCommand cmd1 = new OleDbCommand(sql1, conn);
//执行后读入dr1中

OleDbDataReader dr1 = cmd1.ExecuteReader();

//在textbox中显示 投资方信息表 的内容
dr1.Read();
textBox1.Text = dr1["投资方名称"] as string; //当没有搜索到所要的投资方名称时可以弹出对话框提示,而不是显示 不存在些行/列的数据 的异常
textBox2.Text = dr1["法定代表人"] as string;
textBox7.Text = dr1["财务负责人"] as string;
textBox6.Text = dr1["目标投资公司"] as string;
dr1.Close();
*****************************************************************************************************************
该怎么写这个异常呢?

------解决方案--------------------
你这个问题好像是你的代码的问题吧,应该判断的是 dr1 是否有行,而不是说抛出异常

应该是

if(dr1.hasRows)
{
textBox1.Text = dr1["投资方名称"] as string;
textBox2.Text = dr1["法定代表人"] as string;
textBox7.Text = dr1["财务负责人"] as string;
textBox6.Text = dr1["目标投资公司"] as string;
}
else
{
messagebox.show("没有此人");
}