-3

私はc#で作業しており、SQLコマンドを使用してAccess dbのデータを取得、追加、変更しています。私がしたいのは、データベース内のテーブルで特定のデータまたはレコードをチェックすることです。データが存在するかどうかを示す値 (true/false、0/1) を返すコマンドが必要です。私の全体的な目標は、このチェックを実行できるようにすることであり、データが存在する場合は何もしません。データが存在しない場合は、作成します。誰でもこれを行う方法を知っていますか。SQLでこれを行う方法があると思いますが、間違っている可能性があります。それはそれについてです。問題と質問を適切に提示したことを願っています。

4

4 に答える 4

1

データ アダプター、コマンド、および SQL 検索文字列を使用して OledbConnection を学習する必要があります。

http://msdn.microsoft.com/en-us/library/aa288452(v=vs.71).aspx

**編集** 次のようなプライベートブールメソッドを作成できます:-

Private Bool RecordMatch()
{
 // Perform SQL Search On Data Here, using Data Adapter and populating DataTable.
 // If DataTable is null reference return false
 // Else Return True

}
于 2012-11-09T15:52:40.793 に答える
0

私がとるアプローチは、一致するデータを持つすべての行を取得することです。

 SELECT * 
 FROM yourTable
 WHERE 
      yourTable.field1=value1
      AND 
      yourTable.field2=value2

その時点から、レコードがある場合は、新しいレコードを追加しないでください。

 //we will assume the dt is a DataTable containing the data retrieved from the query
 if(dt.rows.count==0)
 {  
      //add the record
 }

SQL で COUNT を使用する場合は、レコード数を選択できます

 SELECT COUNT(*)
 FROM yourTable
 WHERE 
 yourTable.field1=value1
 AND 
 yourTable.field2=value2

そして、ExecuteScalar を使用します (返された最初の行の最初の列を選択します)

 //cmd is a command object that is set up to query your database
 try
 {
       int count=Convert.ToInt32(cmd.ExecuteScalar())

       if(count==0)
       {
          //add the record
       }
 }
 catch(Exception ex)
 {
    //do something with the error
 }
于 2012-11-09T15:48:47.127 に答える
0

テーブル内のすべての行をチェックする foreach ステートメントを使用できます。行が必要な行と等しい場合は true を返し、それ以外の場合は false を返します...

于 2012-11-09T15:57:13.113 に答える
0

追加された各項目に対応する一意の値で構成される WHERE 句を含む単純な SELECT クエリを実行でき、それに応じてチェックできます。

于 2012-11-09T15:44:42.390 に答える