题
我正在使用c#2010 Express和SQL Compact。我有两列表和表单,用于添加数据以保存到表。但我不想拯救相同的条目。
例如;
Name City
Sefa Istanbul
Sefa New york
Sefa London
Ben New York
......
.
是可以的,但如果用户想要添加另一个
Name City
Sefa Istanbul
.
或已有另一个条目,程序必须停止。
我已将此代码添加到我的项目中,但checkcmd.executenonquery()命令始终返回'-1'
SqlCeConnection Baglanti = new SqlCeConnection(@"Data Source=|DataDirectory|\CeoDatabase.sdf;Password=CeoDB;Persist Security Info=True");
Baglanti.Open();
string checkcommand = "SELECT BarAdi, BarSehri FROM Barlar WHERE BarAdi = '"+ Txt_BarAdi.Text +"' AND BarSehri = '"+Txt_BarSehri.Text+"'";
SqlCeCommand checkcmd = new SqlCeCommand(checkcommand, Baglanti);
int kontrol = checkcmd.ExecuteNonQuery();
MessageBox.Show(kontrol.ToString());
return;
if (checkcmd.ExecuteNonQuery() < 1)
{
MessageBox.Show("Bu bilgiler ile kayıtlı bir bar zaten mevcut");
return;
}
else
{
SqlCeCommand Islem = new SqlCeCommand("INSERT INTO Barlar(BarAdi,BarSehri)VALUES('" + Txt_BarAdi.Text + "','" + Txt_BarSehri.Text + "')", Baglanti);
Islem.ExecuteNonQuery();
MessageBox.Show("İşlem başarıyla tamamlandı");
}
Baglanti.Close();
. 解决方案
You can have it one of the ways
Either set Unique Key for that column in Database . When new record will be inserted it will be automatically checked (Preferred)
Or while Inserting new record check if that city already exist.
If you want to check for exist combination. Do somthing like this (I assume this how you have your data):
SqlCeConnection cn = new SqlCeConnection("your connection string");
string checkcommand = "SELECT [Name], [City] FROM [Tablename]" +
"WHERE [Name] == @name AND [City] == @city" ;
SqlCeCommand checkcmd= new SqlCeCommand(checkcommand, cn);
checkcmd.Parameters.AddWithValue("@name", txtBoxName.Text);
checkcmd.Parameters.AddWithValue("@city", txtBoxCity.Text);
cn.Open();
//Check if record already exist
if(checkcmd.ExecuteNonQuery() > 0)
{
//It already exist
}
else
{
//It doesn't exist Insert new record
}
不隶属于 StackOverflow