如果在存儲過程中使用RETURN語句返回數值,.Net裏用ExecuteScalar方法結果將會導致一個未引用到具體對象的異常,因爲ExecuteScalar方法執行查詢,並返回查詢所返回的結果集中第一行的第一列。所有其他的列和行將被忽略。但是Return並不返回數據集,所以造成異常。
解決方法:
1、對存儲過程動手,在存儲過程中改由Select語句代替reutrn語句返回即可解決此問題。
2、通過ADO.Net來實現,使用SqlParameter設置Direction = ParameterDirection.ReturnValue,當然也沒必要使用ExecuteScalar語句了,使用ExecuteNoneQuery都可以。