我做出選擇從SQL Server表使用此代碼:SqlCommand時使用的參數
using (SqlConnection con = new SqlConnection(SqlConnectionString))
{
string sql = @"SELECT * FROM movies WHERE title like '%' + '" + searchQuery + "' + '%'";
using (var command = new SqlCommand(sql, con))
{
con.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
....
}
}
}
}
它完美的作品,但我想,以防止SQL注入,所以我嘗試使用:
using (SqlConnection con = new SqlConnection(SqlConnectionString))
{
string sql = @"SELECT * FROM movies WHERE title like '%' '@Search' + '%'";
using (var command = new SqlCommand(sql, con))
{
command.Parameters.AddWithValue("@Search", searchQuery);
con.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
..........
}
}
}
}
而當我嘗試執行此操作時,我無法從SQL Server獲得任何結果。
任何想法爲什麼?
標題已關閉 - 您從不在SqlConnection上設置參數 - 以防萬一您不知道SqlConnection和SqlCommand之間存在差異。 – TomTom