2013-11-26 18 views
0

我正在參加C#課程,並試圖從我的數據庫中獲取一些數據。我如何連接一個變量到一個SqlCeCommand?

在我的公共功能我有一個局部變量:string genre = "drama";

現在我想的是可變串聯到我的SqlCeCommand:

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre =" + genre, connection); 

但我不能。

所以我的問題是:如何追加或連接一個變量到SqlCeCommand?

回答

4
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection); 
command.Parameters.AddWithValue("@genre", genre); 

您第一次嘗試關閉,如果語法是固定的可以工作,但使用參數將有助於防止注入攻擊,這是非常糟糕的。

+0

謝謝主席先生! :)將標記它在8分鐘解決... :) –

0

您應該始終使用SQL參數代替字符串連接來防止SQL注入。在你的情況,這也將使它更容易爲你寫一個有效的SQL查詢:

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection); 
command.Parameters.AddWithValue("@genre", genre); 
0

使用參數

SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", conn)); 
    cmd.Parameters.Add(new SqlCeParameter("@genre", genre)); 
相關問題