2

C# コードで次のクエリを使用する必要があります。

SELECT AVG(Percent) 
From Table1
Where code Like "Sport" and Year Like"2011" and Sitting Like"June";

私はこのようにしました:

"SELECT AVG(Percentage) FROM MasterTable WHERE Code LIKE " + comboBoxSubject.Text +
"AND Year LIKE "+dateTimePicker1 +" AND Sitting LIKE June"

しかし、おそらくパラメーターが異なるコントロールから抽出され、逆コンマに配置されていないため、例外が発生します。

誰でも私を助けることができますか?

答え

それは私のために働いたクエリです:

"SELECT AVG(Percent) FROM MasterTable WHERE Code LIKE '" + comboBoxSubject.Text + "' AND Year LIKE '" + dateTimePicker1.Value.Year + "' AND Sitting LIKE 'June'"
4

5 に答える 5

5

データベースについて言及していないため、SQLiteを使用するとします。これにより、SQL インジェクションを回避できます。

var selectCommand = new SQLiteCommand("@SELECT AVG (PERCENT) 
                                       FROM TABLE1
                                       WHERE CODE LIKE @sport AND YEAR LIKE @year AND SITTING LIKE @month");
selectCommand.Parameters.AddWithValue("@sport", sportParameter);
selectCommand.Parameters.AddWithValue("@year", yearParameter);
selectCommand.Parameters.AddWithValue("@month", monthParameter);
于 2013-01-08T19:57:54.827 に答える
1

パラメータを使用%し、使用することを検討し'ください:

SELECT AVG(Percentage) FROM MasterTable WHERE (Code LIKE '%' + @text + '%')
于 2013-01-08T19:56:15.453 に答える
1

文字フィールドには一重引用符を使用します。

"SELECT AVG(Percentage) FROM MasterTable WHERE Code LIKE '" + comboBoxSubject.Text +
        "' AND Year LIKE '" + dateTimePicker1 + "' AND Sitting LIKE 'June'"
于 2013-01-08T19:56:45.133 に答える