過去に、SQL を含むデータベース関連の作業を少し行ったことがあります (ただし、それらがどのようなバリエーションであったかはわかりません)。そのうちの 1 つに、'occnum' キーワードまたは類似のキーワードがあり、一意のフィールドを持たないテーブル内の行をインデックスでアドレス指定できるようになったと確信しています。
私の現在の状況では、数年後、まったく別の職場になりましたが、会社固有の Access データベースを編集できるようにする C# アプリケーションの作成に直面しています。このデータベースには主キーがないため、特定の行を編集するための同様の「出現番号」機能を見つけようとしましたが、何も見つかりませんでした。データベース構造を変更することはできず、どのフィールドも一意ではありません。
例として、次のように OleDbDataAdapter を使用していくつかの行をクエリします。
List<string> result = new List<string>();
DataSet dataSet = new DataSet();
OleDbDataAdapter oleDBA = new OleDbDataAdapter(new OleDbCommand("SELECT " + FIELDNAME_ITEMDATA_TAG + " FROM " + TABLENAME_ITEMDATA + " WHERE " + FIELDNAME_ITEMDATA_AREANUMBER + " = " + Area.ToString(), oleDbConnection));
oleDBA.Fill(dataSet, "ResourceString");
foreach (DataRow dr in dataSet.Tables[0].Rows)
{
result.Add(dr.ItemArray[0].ToString());
}
次に、文字列リストを使用して ListBox を設定します。リスト ボックスのエントリが入力されたら、次のような出現番号で個々の行をクエリできるようにしたいと思います。
"SELECT " + FIELDNAME_ITEMDATA_TAG + " FROM " + TABLENAME_ITEMDATA + " WHERE " + FIELDNAME_ITEMDATA_AREANUMBER + " = " + Area.ToString(), oleDbConnection AND OCCNUM = " + OccNum
これは実行可能ですか?正しいキーワードを見つけられなかったのでしょうか?