2

ComboBox に入力したいのですが、「id_group」という 1 つのパラメーターでデータを並べ替えたいと考えています。コードを書いたのですが、うまくいきません。この行で、「構文が正しくありません」という例外が発生します。

SqlDataReader sd = sc.ExecuteReader();

これはすべて私のコードです:

int id_group=5;
SqlConnection conn = new SqlConnection();
SqlCommand sc = conn.CreateCommand();
sc.CommandText = "SELECT STUDENT FROM FACULTY WHERE ID_GROUP '" + id_group + "'";
conn.Open();
SqlDataReader sd = sc.ExecuteReader(); //this happens exception - "incorrect syntax"
while (sd.Read())
{
    string graduate = (string)sd["STUDENT"];
    Student_comboBox.Items.Add(graduate);
}
conn.Close();

それを機能させる方法は?パラメータでデータをフィルタリングする他の方法はありますか?

4

1 に答える 1

4

実際には、クエリが欠落=しているため、これは次のようになります。

sc.CommandText = "SELECT STUDENT FROM FACULTY WHERE ID_GROUP = '" + 
                                                    id_group + "'";

ただし、回避するためにパラメータ化してくださいSQL Injection

sc.CommandText = "SELECT STUDENT FROM FACULTY WHERE ID_GROUP = @groupID";
sc.Parameters.AddWithValue("@groupID", id_group);

ソース

于 2012-12-06T03:50:06.237 に答える