2012-05-30 30 views
1
class InspectionEquip : DataSet 
{ 
    private readonly SqlConnection CPEC = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()); 

    public InspectionEquip(string store) 
    { 
     CPEC.Open(); 
     SqlCommand comm = new SqlCommand("Select * From Equip3 Where Store = '" + store + "'", CPEC); 
     SqlDataAdapter da = new SqlDataAdapter(comm); 
     da.Fill(/* What to Put Here? Tried "this" and it just returns blank */);  
     CPEC.Close(); 
    } 
} 
+2

這是很容易受到SQL注入 - 請閱讀此:http://www.sommarskog.se/dynamic_sql.html#SQL_injection – Bridge

+1

謝謝你的擡頭。但商店的觀點不是來自用戶。我忽略了另一個危險嗎? – jmease

+0

@jmease使用參數化輸入不會花費任何代價,並且它會結束SQL注入的所有可能性,所以您應該可以這樣做。 – Oliver

回答

0

你有一個問題,您的SQL查詢(沒有匹配的數據,錯誤的參數)。 da.Fill(this)工作正常。

如果你想證明 - 交換與你這個SqlCommand線...

SqlCommand comm = new SqlCommand("select * from INFORMATION_SCHEMA.COLUMNS", CPEC); 

你也應該可能延長DataTable,不DataSet如果您在存儲單個表結果只有永遠的計劃。

+1

謝謝。 SQL語句正常工作。我發現了這個問題,這是我自己的愚蠢。在將DataSet綁定到我的DataGrid時犯了一個錯誤。現在正在工作。 – jmease