所以我的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;
}
编辑:我的错误伙计们我没有将参数添加到我的函数中,因为在我提出问题之前我正在尝试很多事情而忘记把它放回去。
答案 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;
}