从数据库调用数据时将参数传递给 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;
}
编辑:我的错误伙计们我没有将参数添加到我的函数中,因为我在提出问题之前尝试了很多东西,但忘记把它放回去。
您不会在代码中将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));
您是否进行了调试并看到您传递了正确的参数?