我想将值输入Datset,我的代码如下
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
答案 0 :(得分:0)
如果您使用的是数据适配器,那么打开连接需要什么? 。还要检查参数是否正确传递给sp。
答案 1 :(得分:0)
您可以尝试使用以下代码而不是使用“@Id”
cnn.Parameters.Add(new SqlParameter("@memberId", SqlDbType.Int, 4));