我为我的存储过程声明了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',未提供。
请帮助。
答案 0 :(得分: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())
{
//
}