我在SQL服务器中有一个表,其中包含两列的字符串数据。我在c#中也有一个“添加”方法,但我不能再在两列上添加相同的数据。例如在表中我有类似的数据:
code first_name last_name
1 john smith
2 mike croft
即使代码不同,我也不希望再次添加john smith或mike croft。我对c#有点新意,所以如果有人能在代码中给我一个简单的答案,我会非常感激。
P.S。代码是主键,我也有其他列。
这是我的代码:
Form1 obj = (Form1)Application.OpenForms["Form1"];
private void button2_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection(@" Data Source=HOME-D2CADC8D4F\SQL;Initial Catalog=motociclete;Integrated Security=True");
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] pic_arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(pic_arr, 0, pic_arr.Length);
SqlCommand cmd = new SqlCommand("insert into motociclete(firma,model,poza,pret,anf,greutate,caprez,putere,garantie,stoc) values (@firma,@model,@poza,@pret,@anf,@greutate,@caprez,@putere,@garantie,@stoc)",cn);
cmd.Parameters.AddWithValue("@firma", textBox3.Text);
cmd.Parameters.AddWithValue("@model", textBox10.Text);
cmd.Parameters.AddWithValue("@poza", pic_arr);
cmd.Parameters.AddWithValue("@pret", textBox7.Text);
cmd.Parameters.AddWithValue("@anf", textBox4.Text);
cmd.Parameters.AddWithValue("@greutate", textBox9.Text);
cmd.Parameters.AddWithValue("@caprez", textBox5.Text);
cmd.Parameters.AddWithValue("@putere", textBox8.Text);
cmd.Parameters.AddWithValue("@garantie", textBox6.Text);
cmd.Parameters.AddWithValue("@stoc", textBox2.Text);
cn.Open();
try
{
int rez = cmd.ExecuteNonQuery();
if (rez > 0)
{
MessageBox.Show("Adaugare reusita ");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally {
cn.Close();
obj.loaddata();
this.Close();
}
}
}
我不希望能够添加两个具有相同“firma”和“model”的记录。但是如果其中一个重复自己就可以了。 我希望代码有所帮助。
答案 0 :(得分:1)
我是通过在SQL中添加CONSTRAINT来实现的。它现在有效。如果有人有类似的问题,这就是我在SQL中编写的代码:
ALTER TABLE [dbo].[motociclete]
ADD CONSTRAINT uniq UNIQUE NONCLUSTERED ([firma],[model])
以下是帮助我的YouTube视频的链接:
答案 1 :(得分:0)
首先检查重复记录你想要选择txt 值在sql中有,所以不要插入否则插入
bool readerHasRows = false; // <-- Initialize bool here for later use
string firma= txt_friema.Text;
string model= txt_model.Text;
//string color_na = textBox3.Text;
string commandQuery = "SELECT firma,model FROM motociclete WHERE firma = @firma or model=@model";
using (SqlCommand cmd = new SqlCommand(commandQuery, con))
{
cmd.Parameters.AddWithValue("@firma", txt_friema.Text);
cmd.Parameters.AddWithValue("@model", txt_model.Text);
using (SqlDataReader reader = cmd.ExecuteReader())
{
// bool initialized above is set here
readerHasRows = (reader != null && reader.HasRows);
}
}
if (readerHasRows)
{
MessageBox.Show("Already Exists!!");
}
else
{
//your insertion qrocedure
}
希望你喜欢它
感谢