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

本文关键字:参数传递 GridView 数据库 调用 数据 | 更新日期: 2023-09-27 18:35:17

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

我尝试给我的函数一个字符串用户名,并在我的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;
}

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

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

您不会在代码中将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;
    }

所以在你的page_load中,你正在使用参数SessionName调用你的GetCart函数,但我看不到你的GetCart函数正在接受任何参数:

DataSet ds = InsertClass.GetCart(SessionName);
public static DataSet GetCart()
{.....}

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

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

您是否进行了调试并看到您传递了正确的参数?