我用下面的代碼來嘗試從一個SQL Server數據庫表添加參數給錯誤 - 必須聲明標量變量「@Variable」
MySqlCommand.CommandText = "SELECT * FROM dbo.MyTable WHERE [My Id] = @variable";
MySqlCommand.Parameters.Add("@variable", SqlDbType.Int).Value = GetsMyId(this.Mycombobox.SelectedItem.ToString());
我一直在使用.Parameters試圖返回結果。 AddWithValue( 「@變量」,值);但我已閱讀了有關的缺點,並決定改用此方法。該代碼無效。返回錯誤「必須聲明標量變量」@variable「'
我不知道我錯過了什麼,因爲我有一個實現類似的工作版本。在這種情況下,背景不同但與此代碼後的原
//Line that fixes it (added at this point) for anyone else that encounters the issue.
//MySqlConnection.connection = MyConnection;
System.Data.SqlClient.SqlDataAdapter Adapter = new System.Data.SqlClient.SqlDataAdapter(MySqlCommand.CommandText, conn.ConnectionString);
DataTable MyDataTable = new DataTable();
Adapter.Fill(MyDataTable);
在最後的行Adapter.Fill(MyDataTable)
拋出的錯誤是有一些愚蠢的我已經錯過了或者是有一些不兼容我在添加參數值和DataAdapter之間沒有意識到?
如果'GetsMyId'可以返回空值,那麼你會得到這個錯誤。您需要確保參數具有非空值。您可以在C#中使用'DBNull.Value'來代替'null'來表示SQL中的空值。 –
GetsMyId被聲明爲一個私有的int方法,據我所知它不能返回一個空值? – user2874417
什麼'GetsMyId(this.Mycombobox.SelectedItem.ToString())'完全返回?你調試了你的代碼並看到它了嗎?你也試着指'..Add(「@ variable」,SqlDbType.Int).Value..'而不是? –