添加给出错误的参数 - 必须声明标量变量" @ variable"

时间:2016-02-22 15:06:46

标签: c# sql-server

我使用以下代码尝试从SQL Server数据库表返回结果

 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",value);但我已经了解了这些缺点并决定使用这种方法。代码既不适用也不适用。返回错误'必须声明标量变量" @ 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之前不知道?

1 个答案:

答案 0 :(得分:5)

在这一行

new System.Data.SqlClient.SqlDataAdapter(MySqlCommand.CommandText, conn.ConnectionString)

...你传入的是CommandText,而不是对象" MySqlCommand"

SqlDataAdapter有一个构造函数接受一个命令对象以及一个带字符串的构造函数...