2014-02-13 130 views
0

我有一個C#應用程序。我正在嘗試運行參數化查詢,請參閱下面的內容。不過,我不斷收到錯誤消息C#運行SQL參數化查詢 - 參數不支持

「參數化查詢 '(@dtStart日期)SELECT * FROM D_CORPACTIONS_MSCI WHERE [date_effe' 需要參數 '@dtStart', 但未提供。」

我看不出它爲什麼告訴我這個呢?

DateTime dtStart = dtPrev; 

using (_connection = new SqlConnection(_connectionString)) 
{ 
    _connection.Open(); 
    string cmdText = "SELECT * FROM D_CORPACTIONS_MSCI " + 
         "WHERE [date_effective] >= @dtStart " + 
         "AND [ca_status] ='" + caStatus + "'"; 

    _command = new SqlCommand(cmdText, _connection); 
    _command.Parameters.Add("@dtStart", SqlDbType.Date); 
+4

你必須賦值爲'@ dtStart',你在哪裏做? – user2989408

+3

(然後修復caStatus也是一個參數......) –

+0

啊,是的!現在我感到很蠢!謝謝你的幫助! – mHelpMe

回答

1

而不是Parameters.Add嘗試Parameters.AddWithValue

_command.Parameters.AddWithValue("@dtStart", dtStart); 

或者給一個價值,你的參數:

_command.Parameters.Add("@dtStart", SqlDbType.Date).Value = dtStart;