【发布时间】:2018-10-26 19:05:46
【问题描述】:
我正在尝试执行一个使用以下代码返回数据的存储过程。 返回的结果是一个带有列名的表,但它没有返回任何行。
public static DataSet ExecuteStoredProcedure()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
using (var context = new EFEntity())
{
var connectionString = ((System.Data.SqlClient.SqlConnection)context.Database.Connection).ConnectionString;
using (var conn = new SqlConnection(connectionString))
{
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "sp.Name";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("InputParam", 12345));
cmd.CommandTimeout = 12000; //Timeout set to max
using (var adapter = new SqlDataAdapter(cmd))
{
adapter.Fill(ds);
}
}
}
}
return ds; // Returns 0 Rows
}
存储过程有一个select 语句,并在单个表中返回结果,如下所示:
【问题讨论】:
-
那么....什么是 sp.Name 以及您的数据是什么样的?
-
SP 有选择语句(单个数据表)
-
添加了 SP 的示例结果,如果我展开 ds,它有一个包含所有列名的表,但没有结果行
-
尝试“12345”而不是 12345。SqlConnector 不执行隐式转换
-
@Steve 哦,是的,我也刚刚发现,这就是问题所在。感谢您的帮助
标签: c# .net sql-server ado.net