0

我想将值放入数据集中,我的代码如下

 public DataSet GetMemberById(int memberId)
        {

            using (SqlConnection con = new SqlConnection(connectionString))
            {
                using (SqlCommand cnn = new SqlCommand("selectmemberByID", con))
                {
                    cnn.CommandType = CommandType.StoredProcedure;
                    cnn.Parameters.Add(new SqlParameter("@id", SqlDbType.Int, 4));
                    cnn.Parameters["@id"].Value = memberId;

                    using (DataSet ds = new DataSet())
                    {
                        try
                        {
                            con.Open();
                            cnn.ExecuteNonQuery();
                            SqlDataAdapter da = new SqlDataAdapter(cnn);
                            da.Fill(ds);

                        }

                        catch (Exception e)
                        {
                        }
                        return ds;
                    }
                }
            }
        }




protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["MemberId"].ToString() != string.Empty)
            {
                int memberId=Convert.ToInt32(Request.QueryString["MemberId"]);
                DataSet ds = new DataSet();
                ds = utility.GetMemberById(memberId);
                GdMember.DataSource = ds;
                GdMember.DataBind();
                //txtFirstName.Text = ds.Tables[0].Rows[0][1].ToString();
            }
        }

在最后一种方法中,它向我显示一个错误,数据集中没有表。

stored procedure:

Alter proc [dbo].[selectmemberByID]
(
@memberId int=2
)
as 
begin
select * from dbo.MemberDetail
where id=@memberId
end
4

2 回答 2

0

如果您使用的是数据适配器,那么需要打开连接吗?. 还要检查参数是否正确传递给您的 sp。

于 2012-12-24T11:00:07.987 回答
0

您可以尝试使用以下代码而不是使用“@Id”吗

cnn.Parameters.Add(new SqlParameter("@memberId", SqlDbType.Int, 4));
于 2012-12-24T12:44:27.937 回答