我正在尝试执行一个存储过程,该存储过程使用以下代码返回数据。 返回的结果是一个带有列名的表,但不返回任何行。
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
语句,并在单个表中返回结果,如下所示:
答案 0 :(得分:0)
当您的string
传递SqlParameter
时,您的输入参数需要int
类型
SqlConnector
不会执行隐式转换,因此不会返回任何结果。
以正确的类型传递数据应该可以解决此问题。