私は、Excel シートのいくつかのエントリを Oracle データベースのテーブルと比較して、Oracle データベースのいくつかのエントリを検証する小さなアプリケーションに取り組んでいるので、データベースのクエリのみに取り組んでおり、複雑すぎることはありません。
クエリが何であるかに関係なくコードを変更する必要がないように、これを完全に動的にしようとしていますが、クエリしているテーブルに数値型と文字列型がある場合、小さな問題が発生しています値。
If chkConnState() Then
sSql = "SELECT * FROM " & workSheetName & " WHERE "
For i = 1 To ds.Tables.Item(0).Columns.Count - 1
sSql &= ds.Tables.Item(0).Columns.Item(i).ToString & " = " & ds.Tables.Item(0).Rows.Item(i).Item(i).ToString & " AND "
Next
newSql = sSql.Substring(0, sSql.Length - 4)
End If
ここでは、テーブルに対してクエリを実行する SQL ステートメントのみを収集しています。Excel から列と行の情報を取得し (私が知っている情報は正しく、テーブルの内容を確認するために使用しています)、クエリから末尾の「AND」を削除します。
列が数値か文字列かを判断する簡単な方法はありますか? 私が今抱えている問題は、文字列値の "'" & value & "'" を動的に追加する場所を決定する方法がわからないことです。PK でクエリを実行するだけですが、テーブルごとに異なるため、これを見つける簡単な方法があるかどうかはわかりません。上記の方法で複数のレコードを取得するのではなく、1 つのレコードのみを取得します。これを動的にするためのより良い方法はありますか?