関連する行をデータテーブルに取得しようとしています。列の値が他のSQLテーブルの値の1つと等しい行のみが必要です。それが私のコードです:
try
{
sc.Open();
for (int i = 0; i < queryTokens.Length; i++)
{
cmd = new SqlCommand("INSERT INTO QueryIndex (Term) Values ('" + queryTokens[i] + "')", sc);
cmd.ExecuteNonQuery();
}
cmd = new SqlCommand("SELECT * FROM TermsIndex Where Term EXIST (Select Term From QueryIndex)");
SqlDataAdapter da = neuw SqlDataAdapter(cmd);
da.Fill(tempTable);
da.Dispose();
sc.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
挿入の最初の部分はうまくいっていると確信していますが、2 番目の部分では、私がやろうとしていることを皆さんが理解してくれることを願っています。ここに構文エラーがあることはわかっているので、修正してください。例外メッセージ: {"値を null にすることはできません。\r\nパラメータ名: dataTable"} Null 例外..
これは私のSQL作成テーブルです:
CREATE TABLE [dbo].[TermsIndex]
(
[ID] VARCHAR(35) NOT NULL,
[Term] VARCHAR(35) NOT NULL,
[Frequency] int NOT NULL,
[Offset] VARCHAR(MAX) NOT NULL,
)
CREATE TABLE [dbo].[QueryIndex]
(
[Term] VARCHAR(MAX) NOT NULL,
)
では、なぜその null エラーが発生するのですか? とにかく、最初のエントリのエントリと列を比較できるようにするためだけにテーブルを作成しています。すでに文字列配列があり、その列の値を変更する文字列(トークン)の数と比較して返すことができる可能性がありますSQLコマンドの文字列の1つと等しい場合、行の結果は? または、必要な結果を得るためのよりエレガントな方法はありますか?