我的原始查詢使用@WF_ID作爲參數名稱,並且執行時沒有任何問題。雖然我很懶,WF_的輸入很多,所以我將參數重命名爲@ID,但現在執行時拋出了SQLException。確切的消息是「無效列名稱_Page」爲什麼要更改參數化查詢中的參數名稱會導致拋出SqlException?
這裏是查詢和相應代碼的兩個版本。正如你所看到的,唯一改變的是參數名稱。
SQL_Connection.Open();
SQL_Command.Connection = SQL_Connection;
SqlParameter param = new SqlParameter("@WF_ID", SqlDbType.Int);
param.Value = WF_ID;
SQL_Command.Parameters.Add(param);
SQL_Command.CommandText = "SELECT COUNT(*) AS MyCount from members WHERE ID = @WF_ID";
int numRows = Convert.ToInt32(SQL_Command.ExecuteScalar().ToString());
SQL_Command.Parameters.Clear();
2.0版破版
SQL_Connection.Open();
SQL_Command.Connection = SQL_Connection;
SqlParameter param = new SqlParameter("@ID", SqlDbType.Int);
param.Value = WF_ID;
SQL_Command.Parameters.Add(param);
SQL_Command.CommandText = "SELECT COUNT(*) AS MyCount from members WHERE ID = @ID";
int numRows = Convert.ToInt32(SQL_Command.ExecuteScalar().ToString());
SQL_Command.Parameters.Clear();
我最初的想法是一個參數名稱不能是相同的列名的一個...但我無法找到任何明確地說, 。
看着這個StackOverflow主題看起來你不能通過參數傳遞列名。 Can I pass column name as input parameter in SQL stored Procedure
要將您的理論文本重命名爲除已使用的兩個名稱以外的其他名稱,並查看它是否有效。 –