问题描述
- 数据库中主键信息存在,注册信息中主键信息重复问题
-
public partial class 挂号界面 : Form { OleDbConnection con = new OleDbConnection(); string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:hospitaldata.accdb"; public 挂号界面() { InitializeComponent(); con.ConnectionString = str; } private void Form2_Load(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { string a = textBox1.Text; string b = textBox2.Text; string c = textBox3.Text; string d = textBox4.Text; OleDbCommand cmd = new OleDbCommand(@"insert into [patient](ID,姓名,年龄,性别) values(" + a + ",'" + b + "'," + c + ",'" + d + "')"); con.Open(); cmd.Connection = con; cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("挂号成功!"); } private void button2_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; } private void button3_Click(object sender, EventArgs e) { this.Hide(); new 挂号缴费界面().ShowDialog(); } }
}
求注册的信息中ID在数据库中已经存在,提示ID存在的代码 ,并告知添加在何处
解决方案
你可以自己sql查一遍,返回数据如果不为空,表示存在,你自己提示
解决方案二:
好像回答过你了。设置主键。
要具体代码,请采纳所有我回答的问题,再上传你的程序到网盘,写给你。
解决方案三:
- ID是身份证号么?那应该是字符类型的吧。你的Insert语句要加''
- 在insert之前,先做一个SELECT COUNT(*) FROM [patient] WHERE [ID]=@ID;如果Count的值>0,则说明有这个ID
解决方案四:
你自己直接select先查询一下,或者用INSERT ignore这样当存在就不会插入
时间: 2024-11-08 18:23:08