1
string selectedAreas = getSelectedAreas(areaCounts);

SqlConnection cn = new SqlConnection(connectionstring);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select top 1 [x1] " +
                  "from sometable " +
                  "where sometable.coll = @selectedAreas" +
                  "order by NEWID() ";
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = cn;
cmd.Parameters.AddWithValue("@selectedAreas", selectedAreas);

ここで何が間違っていますか?

私は得る

@selectedAreas のスカラー変数を宣言する必要があります。

@selectedAreas次のようになります。

" 'nyc' or sometable.coll = 'la' or sometable.coll = 'miami' "

編集:

以下のコメントが指摘したように、スペースを追加しました。そして、次のようにパラメーターを削除しました。

cmd.CommandText = "select top 1 [x1] " +
                  "from sometable " +
                  "where sometable.coll = " + selectedAreas
                  " order by NEWID() ";

それがどれほど正しいかはわかりませんが、今のところ機能しています...

4

1 に答える 1

0

これは、次のように、コマンドの実行方法(質問に含めなかった方法)である可能性があります。スカラー変数を宣言する必要があります

于 2012-10-31T14:18:20.817 に答える