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