SqlDataAdapter返回零行

时间:2018-10-26 19:05:47

标签: c# .net sql-server ado.net

我正在尝试执行一个存储过程,该存储过程使用以下代码返回数据。 返回的结果是一个带有列名的表,但不返回任何行。

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语句,并在单个表中返回结果,如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

当您的string传递SqlParameter时,您的输入参数需要int类型

SqlConnector不会执行隐式转换,因此不会返回任何结果。

以正确的类型传递数据应该可以解决此问题。