如果在这段代码里添加判断录入的ID是否和书库里的ID重复,如果重复就插入失败,否则成功

zheng5233 2012-06-08 02:39:54
private void button1_Click(object sender, EventArgs e)
{
//if (Select count(*) from ZDML where ZDID='"+textBox3.Text.Trim()+"')
//{label11.Text="很抱歉!你新增的诊断ID在系统中已经存在,请检查后再新增!";}
//else
//{
try
{
SqlConnection thisConnection = new SqlConnection(SQL.connectDB);
thisConnection.Open();
SqlCommand cmd = new SqlCommand("insert into ZDML (ZDID,LB,Name,ICDFL,ICDLX,PYM,WBM,LCBX,XBXZ,BZ) values('" + this.textBox3.Text + "','" + this.comboBox3.Text + "','" + this.textBox1.Text + "','" + this.comboBox2.Text + "','" + this.comboBox1.Text + "','" + this.textBox5.Text + "','" + this.textBox6.Text + "','" + this.textBox2.Text + "','" + this.textBox8.Text + "','" + this.textBox7.Text + "')", thisConnection);
SqlDataReader myreader = cmd.ExecuteReader();
//this.Close();
thisConnection.Close();
MessageBox.Show("增加成功!", "提示");
ClearAll();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
//}
}
...全文
93 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
violet_han 2012-06-08
  • 打赏
  • 举报
回复
if (Select count(*) from ZDML where ZDID='"+textBox3.Text.Trim()+"')

不能直接这么写的,看我上面写的

label11.Text="很抱歉!你新增的诊断ID在系统中已经存在,请检查后再新增!";

这个可以用MessageBox.Show()的,不用专门用一个控件
violet_han 2012-06-08
  • 打赏
  • 举报
回复
一种是对数据库进行设置,将ID设为unique;
一种是在你的程序中insert 语句之前,做一个判断(if else语句即可):
string sql="select count(*) from 数据库名 where ID=录入的ID";
SqlCommand comm=new SqlCommand (sql,thisConnection);
if (comm.ExecuteScalar().ToString() == "0")//不存在
{
//插入语句
}
else
{
//失败语句
}
宝_爸 2012-06-08
  • 打赏
  • 举报
回复
数据库ID设置为Unique,最好还设置成主键。
人生无悔 2012-06-08
  • 打赏
  • 举报
回复
最简单的方法:在数据库中经ZDML中的ZDID加个唯一键就可以了

要不你就在
thisConnection.Open();
此后加入一个检测数据库是否已存在该图书
用cmd.ExecuteScalar();
或cmd.ExecuteReader();
来判断

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧