【发布时间】:2014-04-18 10:39:45
【问题描述】:
我有一个采用单个字符串参数 (ID) 的方法。
我想使用SqlCommand 来返回查询结果的DataTable。我试图在查询中从我的数据库(Sql Server)调用一个表函数并传入我的 ID 参数。这个DataTable 的内容然后将填充一个组合框。这是我到目前为止所拥有的......
public string populateCompanyTransSellingEntityLookUp(string BlockId)
{
string _sql = "";
SqlCommand _comm = new SqlCommand();
_comm.Parameters.AddWithValue("(@block_id", BlockId);
_comm.CommandText = "SELECT [name] FROM dbo.fnGetBlockCompanyWIList(@block_id) ORDER BY [name]; ";
_comm.Connection = _conn;
_comm.CommandTimeout = _command_timeout;
DataTable dt = new DataTable();
try
{
SqlDataReader myReader = _comm.ExecuteReader();
dt.Load(myReader);
}
catch (Exception)
{
throw;
}
Combo.DataSource = dt;
return _sql;
}
但我得到一个错误,“必须声明标量变量'@block_id'”。为什么?
【问题讨论】:
-
我不明白问题出在哪里。
-
_comm.Parameters.AddWithValue("@block_id", BlockId);_comm.CommandText = "SELECT [company_int_name] FROM dbo.fnGetBlockCompanyWIList(@block_id) ORDER BY [company_int_name];";
-
这里没有问题
-
到底出了什么问题?你有例外吗?结果集是否为空?如果您不提出问题,没有人可以帮助您。
标签: c# sql sql-server winforms