con.Open();
SqlCommand cmd = new SqlCommand(@"INSERT INTO donorinfo (donorid,name,fathersname,age,sex,cnicno,mobileno,dateofbirth,city,address,eyecolor,bloodgroup,dateofdonation) VALUES('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + comboBox1.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + dateofbirth.Text + "','" + textBox9.Text + "','" + textBox10.Text + "','" + comboBox2.Text + "','" + comboBox3.Text + "','" + dateofdonation.Text + "')", con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Succesfully saved", "info");
clear();
Display();
我正在研究血库管理系统这里是我的插入按钮代码。
答案 0 :(得分:0)
主键并不是手动生成的,因为在插入数百万条记录后,您无法判断您手动选择或创建的ID是否重复。这意味着PK必须始终由数据库或代码自动生成。如果您希望数据库生成它,您可以使用IDENTITY
关键字然后选择种子(例如:IDENTITY(1,1)
),或者您可以在数据库中创建SEQUENCE
。但是,另一种选择是使用GUID
作为密钥。如果要在数据库中生成GUID
类型PK(尤其是顺序GUID),可以将主键类型设置为UNIQUEIDENTIFIER ROWGUIDCOL
,并且可以使用NEWSEQUENTIALID()
函数创建顺序{ {1}}作为默认值。另一方面,您可以使用以下代码在C#中生成GUID
:
GUID
但是,我建议您不要使用var id = Guid.NewGuid(); // or Guid.NewGuid().ToString();
PK而是使用数字主键,因为它需要更少的空间,并且它会使插入/更新/删除或级联操作更快。