这是我的viewprofile.aspx代码,其中将发生绑定。我计划将我在sql中的数据绑定到我的gridview,但它向我显示所有数据(来自sql)而不是特定登录客户的数据。这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["New"] != null)
{
bindgrid();
}
}
public void bindgrid()
{
SqlConnection conn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True");
SqlCommand cmd = new SqlCommand("select * from UserData WHERE Username = Username ", conn);
SqlDataAdapter da = new SqlDataAdapter("", conn);
da.SelectCommand = new SqlCommand("select * from UserData WHERE Username = Username", conn);
DataSet ds = new DataSet();
da.Fill(ds, "data");
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
答案 0 :(得分:1)
它向我展示了所有数据(来自sql)而不是 特定登录客户
这是因为WHERE
查询中的SELECT
条件显示WHERE Username = Username
TAUTOLOGY
并且始终为TRUE
,因此获取所有行
实质上,您的SELECT
查询正在执行
select * from UserData;
您需要在WHERE
条件中指定登录的customerid才能获得他/她的记录。
考虑到您的Username
代码中有一个名为ASP.NET
的变量,您存储了当前登录的客户名称;然后像下面那样更改你的代码
SqlCommand cmd = new SqlCommand("select * from UserData WHERE Username = @Username ", conn);
cmd.Parameters.AddWithValue("@Username", Username);
da.SelectCommand = cmd;