0

次のように、ストアド プロシージャの 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' が必要です。

助けてください。

4

1 に答える 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())
{
  //
}
于 2012-08-01T06:57:41.400 に答える