2011-01-14 52 views
0

我想運行這段代碼,但我得到的錯誤「參數化查詢期望參數@faid它沒有提供」。至少根據我的知識,這段代碼看起來不錯。我在Windows 7上使用VS 2010,並將SQLEXPRESS作爲後端。參數化的查詢需要參數######這是不是提供

在此先感謝。


 string getDataQuery; 
     lcFaid = "70464917-967b-4796-9483-3b0b4b004a3e"; 

     SqlConnection sqlConnection1 = new SqlConnection(ccsConnectionString); 

     DataSet data = new DataSet(); 
     data.Locale = System.Globalization.CultureInfo.InvariantCulture; 

     getDataQuery = 
      "SELECT customer,custtrack,ackdate FROM famain WHERE faid = @lcFaid"; 

     SqlDataAdapter masterDataAdapter = new SqlDataAdapter(); 
     masterDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; 

     masterDataAdapter.SelectCommand = new SqlCommand(); 
     masterDataAdapter.SelectCommand.Connection = sqlConnection1; 

     masterDataAdapter.SelectCommand.Parameters.Add("@lcFaid", 
      SqlDbType.UniqueIdentifier, 36, "faid").SourceVersion = DataRowVersion.Original; 


     masterDataAdapter.SelectCommand.CommandText = getDataQuery; 
     masterDataAdapter.Fill(data, "famain"); 
+1

因此,您有一個名爲`@ lcFaid`的參數,但是錯誤消息表明它正在尋找名爲`@ faid`的參數?這很奇怪。 – Gabe 2011-01-14 05:10:04

回答

0

我知道你從來沒有使用可變lcFaid。也許你打算使用它而不是字符串"faid"(它根本不是GUID)?

masterDataAdapter.SelectCommand.Parameters.Add("@lcFaid", 
     SqlDbType.UniqueIdentifier, 36, lcFaid).SourceVersion = DataRowVersion.Original; 
0

不知道這一點 - 但我會

  • 第一設置命令的查詢文本(它定義了哪些參數會有)
  • 只有然後的參數添加到收藏

類似這樣的:

string getDataQuery = 
     "SELECT customer,custtrack,ackdate FROM famain WHERE faid = @lcFaid"; 

SqlDataAdapter masterDataAdapter = new SqlDataAdapter(); 
masterDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; 

masterDataAdapter.SelectCommand = new SqlCommand(); 
masterDataAdapter.SelectCommand .Connection = sqlConnection1; 

// first set the query text 
masterDataAdapter.SelectCommand.CommandText = getDataQuery; 

// after that, define the parametesr 
masterDataAdapter.SelectCommand.Parameters 
    .Add("@lcFaid", SqlDbType.UniqueIdentifier, 36, "faid").SourceVersion = DataRowVersion.Original; 

此外,作爲「加布」指出在他的評論 - 錯誤消息引用參數@faid,但你定義和設置一個名爲@lcFaid參數 - 爲什麼?

+0

謝謝!爲了節省時間,我創建了一個存儲過程並調用它來獲取相同的數據。然而,我將在業餘時間繼續使用此代碼並在此處發佈我的結果。 – Frank 2011-01-19 00:48:38

相關問題