从数据库调用数据时将参数传递给GridView

时间:2014-12-26 15:18:54

标签: c# asp.net gridview

所以我的GridView返回我的表中的所有数据,但我想返回与表中UserName属性相关的数据,请注意我在表中有多个UserName。

我尝试给我的函数一个字符串用户名,并在我的page_load中:

string SessionName;
protected void Page_Load(object sender, EventArgs e)
{
    SessionName = Session["Username"].ToString();
    DataSet ds = InsertClass.GetCart(SessionName);


}

在我班上:

public static DataSet GetCart(string UserName)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM [ShoppingCart] WHERE UserName = @UserName ", conn);
    cmd.CommandType = CommandType.Text;

    cmd.Parameters.Add(new SqlParameter("@UserName", UserName));


    DataSet ds = new DataSet();
    SqlDataAdapter adapter1 = new SqlDataAdapter(cmd);
    adapter1.Fill(ds);
    conn.Close();
    return ds;
}

编辑:我的错误伙计们我没有将参数添加到我的函数中,因为在我提出问题之前我正在尝试很多事情而忘记把它放回去。

2 个答案:

答案 0 :(得分:0)

所以在你的page_load中,你用参数SessionName调用你的GetCart函数,但是我看不到你的GetCart函数带有任何参数:

DataSet ds = InsertClass.GetCart(SessionName);

public static DataSet GetCart()
{.....}

当您将参数添加到sql查询时,UserName的引用是什么:

cmd.Parameters.Add(new SqlParameter("@UserName", UserName));

您是否调试过并发现您正在传递正确的参数?

答案 1 :(得分:0)

您没有在代码username

中将public static DataSet GetCart()作为字符串参数传递

这是正确的:

public static DataSet GetCart(string userName)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
        conn.Open();
        SqlCommand cmd = new SqlCommand("SELECT * FROM [ShoppingCart] WHERE UserName = @UserName ", conn);
        cmd.CommandType = CommandType.Text;

        cmd.Parameters.AddWithValue("@UserName", userName);

        DataSet ds = new DataSet();
        SqlDataAdapter adapter1 = new SqlDataAdapter(cmd);
        adapter1.Fill(ds);
        conn.Close();
        return ds;
    }