存储过程导致错误

问题描述 投票:0回答:1

我为我的存储过程声明了 2 个参数,如下所示:

ALTER procedure [dbo].[paging_select]
    @startrowindex int,
    @maximumrows int
as
begin
    select username,firstname,lastname from crudtable ;
end

简单地传递如下值,但在执行时,它会导致错误:

SqlConnection con = new SqlConnection(getconnectionstring());
con.Open();

DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter sda = new SqlDataAdapter("paging_select", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@startrowindex", 1);
cmd.Parameters.AddWithValue("@maximumrows", 3);
//  cmd.Parameters.AddWithValue("@totalrows", 1);

cmd.Connection = con;
sda.Fill(dt);  
sda.Dispose();
gridview.DataSource = dt;
gridview.DataBind();
con.Close();

错误是:

过程或函数“paging_select”需要参数 '@startrowindex',未提供。

请帮忙。

c# sql-server stored-procedures pagination
1个回答
3
投票

您必须将命令对象传递给

SqlDatAdapter

SqlCommand cmd = new SqlCommand();
cmd.CommandText="paging_select";
cmd.Connection=con;
SqlDataAdapter sda = new SqlDataAdapter(cmd);

PS:始终使用 using 块自动处置对象(IDisposable)。

using(SqlConnection cn=new SqlConnection())
{
  //
}
© www.soinside.com 2019 - 2024. All rights reserved.