2010-03-19 113 views
2

我目前正在做一個前端顯示我公司的軟件審計許可證信息,但即時通訊沒有專業人士與SQL或asp.net所以四跑進了一點麻煩。我試圖獲得多行許可的總和,因此我可以把它放在一個文本框中,但是我得到錯誤「必須聲明標量變量」@softwareID「。c#asp.net問題'必須聲明標量變量'

SqlConnection con1 = Connect.GetSQLConnection(); 
     string dataEntry = softwareInputTxt.Text; 
     string result; 

     dataEntry = dataEntry + "%"; 
con1.Open(); 
     SqlCommand Mycmd1; 
     Mycmd1 = new SqlCommand("select sum(license_quantity_owned) from licenses where software_ID like @softwareID", con1); 
     MyCmd.Parameters.AddWithValue("@softwareID", dataEntry); 
     result = (string)Mycmd1.ExecuteScalar(); 
     licenseOwnedTxt.Text = result; 

任何人都可以指向正確的方向嗎?

回答

4

d'oh!找到它了:

Mycmd1 ... 
MyCmd ... 

兩個不同的命令!

你想:

Mycmd1.Parameters.AddWithValue("@softwareID", dataEntry); 

(或指定MyCmdMycmd1是一回事)


我認爲它可能已經是默認的,但你可以嘗試設置.CommandType到明確地說明了CommandType.Text。另外請注意,AddWithValue可能會導致比創建更多的查詢計劃;我會明確地創建一個已知大小的變量(列的大小加上%的備用)。現有的字符串concat應該已經確保它不是null(這通常是問題)。

此外,注意,這兩個SqlConnectionSqlCommandIDisposable - 既可以在using被包裹在這裏。

+0

哎呀,什麼是一個明顯的錯誤,但沒有人包括我發現它哈哈,theres其他命令我沒有打擾複製粘貼在這裏......現在工作正常謝謝 – Verian 2010-03-22 08:51:46