• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

求救!谢谢!

绿皮车 技术经理  2003-01-22 09:59:25
各位大侠:
我想做一个判断数据库是否有重复记录函数,并返回给调用方true或false,但遇到一些问题,如下:
public bool SeekRowJudge=true;
...........................
public bool checkKey(string BillName,System.Data.DataSet myDs,string KeyName)
{
connStr=DBReader.ConnectionString;
System.Data.SqlClient.SqlConnection conn=new SqlConnection(connStr);
conn.Open();
if(connStr!=null)
{
SqlDataAdapter myDa=new SqlDataAdapter();
myDa.SelectCommand=new SqlCommand("select * from "+BillName,conn);
SqlCommandBuilder myCb=new SqlCommandBuilder(myDa);
DataSet mySeekDs=new DataSet();
myDa.Fill(mySeekDs,BillName);

System.Data.DataTable myTb;
myTb=myDs.Tables[BillName];
System.Data.DataRow myRow=myTb.Rows[0];

SeekRowJudge=true;
foreach(DataRow mySeekRow in mySeekDs.Tables[BillName].Rows)
{
if(myRow[KeyName]==mySeekRow[KeyName])
{
DoubleValueException de=new DoubleValueException("数据库中已有该条记录");
throw de;
this.SeekRowJudge=false;//系统告诉我--这里检测到无法访问的代码
}
//return false;
//break;
}

return SeekRowJudge;
}
conn.Close();


}
系统告诉我---1)C:\Inetpub\wwwroot\SELECT\BillOperator.cs(184): “WebUI.BillOperator.checkKey(string, System.Data.DataSet, string)” : 并非所有的代码路径都返回值
2)C:\Inetpub\wwwroot\SELECT\BillOperator.cs(208): 检测到无法访问的代码

请大家赐教!谢谢!
...全文
5 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ssdjmcj8048 2003-01-22
return true前要加cnn.Close();
cnn.Close()前要加return false;
题外话:判断是否重复,请用Sql语句或存储过程,你这样将数据都干过来,效率太低,不知道的人还以为ADO.Net就这么烂
回复
qimini 2003-01-22
然后将return SeekRowJudge;这句放在conn.Close();这句之后
回复
qimini 2003-01-22
throw de;
this.SeekRowJudge=false;//系统告诉我--这里检测到无法访问的代码
变为:
this.SeekRowJudge=false;
throw de;


回复
dreammaster 2003-01-22
将return SeekRowJudge;这句放在conn.Close();这句之后.
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2003-01-22 09:59
社区公告

让您成为最强悍的C#开发者