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() ";
それがどれほど正しいかはわかりませんが、今のところ機能しています...