0

私はC#2010ExpressとSqlCompactを使用しています。2列のテーブルと、テーブルに保存するデータを追加するためのフォームがあります。しかし、私は同じエントリを保存したくありません。

例えば;

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();
4

1 に答える 1

0

あなたはそれを方法の1つにすることができます

  • Database でその列のUnique Key を設定します。新しいレコードが挿入されると、自動的にチェックされます (優先)ここに画像の説明を入力

  • または、新しいレコードの挿入中に、その都市が既に存在するかどうかを確認します。

存在する組み合わせを確認したい場合。次のようなことを行います(これは、データの取得方法であると想定しています):

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
}
于 2011-02-19T22:27:50.610 に答える