0

カスタム ページングを追加しようとしましたが、ユーザー名とパスワードでログインするとエラーが発生します。
また、abcがログインし、abcが彼女のドキュメントのみを表示できるように、ドキュメントのみを表示しますが、カスタムページングを追加すると、エラーUserIDが表示されず、spコードも共有します

コードは

protected void BindRepeater()
{
    SqlConnection con = new          
    SqlConnection(ConfigurationManager.ConnectionStrings["mydms"].
    ConnectionString.ToString());
    SqlCommand cmd = new SqlCommand("sphrdoc2", con);

    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }
    DataTable dt = new DataTable();
    SqlDataAdapter adp = new SqlDataAdapter(cmd);
    adp.Fill(dt);
    PagedDataSource pgitems = new PagedDataSource();
    DataView dv = new DataView(dt);

この行で

 adp.Fill(dt);

エラーが発生する

プロシージャまたは関数 'sphrdoc2' には、指定されていないパラメーター '@UserID' が必要です。

spは

ALTER procedure [dbo].[sphrdoc2]

    @UserID int
    as
    Select 
       dbo.DocumentInfo.DocID as DocumentID, 
       dbo.DocumentInfo.DocName as DocumentName, 

       dbo.DocType.DocType as Document, 

       dbo.Department.DepType as Department, 
       dbo.DocumentInfo.Uploadfile as FileUploaded,
       dbo.ApproveType.ApproveType AS Status 

       FROM 
       dbo.DocumentInfo
           inner JOIN dbo.DocType ON dbo.DocumentInfo.DocTypeID=dbo.DocType.DocTypeID
           inner JOIN dbo.Department ON dbo.DocumentInfo.DepID=dbo.Department.DepID
           left join dbo.ApproveType on dbo.DocumentInfo.ApproveID=dbo.ApproveType.ApproveID
       where UserID=@UserID

リピーターコードのどこで間違いを犯したか教えてください。

4

1 に答える 1

2

ストアド プロシージャのパラメータを渡す必要があります。

  SqlCommand cmd = new SqlCommand("sphrdoc2", con);
  cmd.Parameters.AddWithValue("@UserID","YourUserID"); 
        if (con.State == ConnectionState.Closed)
        {
            con.Open();
        }
        DataTable dt = new DataTable();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(dt);
于 2013-11-08T14:59:09.647 に答える