在Sql查询中使用.net控件

本文关键字:net 控件 Sql 查询 | 更新日期: 2023-09-27 18:03:34

我遇到的问题是,我试图根据当前登录的用户查询我的数据库。用户的值存储为appid。文本和对象"在这里",但无论我做什么,我不能得到查询拉出的信息为特定的用户。如果我删除"Where"子句,一切都有效,但它为所有用户而不是一个用户提取数据。欢迎任何帮助。

protected void Page_Load(object sender, EventArgs e)
{
    string here = Membership.GetUser().ProviderUserKey.ToString();
    appid.Text = here;
    string connectionString =
        System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
    // Create SQLDataSource.
    SqlDataSource sqlDataSource = new SqlDataSource();
    sqlDataSource.ID = "SqlDataSource123";
    this.Page.Controls.Add(sqlDataSource);
    // Bind ConnectionString to SQLDataSource.
    sqlDataSource.ConnectionString = connectionString;
    string query = "SELECT Nkey, AppID, Skey, ckey, quad, expyr FROM [dbo].[wallets]  WHERE appid = '" + Here + "' ";
    sqlDataSource.SelectCommand = query;
    // Bind SQLDataSource to GridView after retrieving the records.
    GridView1.DataSource = sqlDataSource;
    GridView1.DataBind();
}

在Sql查询中使用.net控件

首先,看看你的代码,你发送给SQL的AppId是一个字符串,没有看到你的表模式,也许列被定义为一个整数?如果它被定义为整数,那么您不需要在查询中使用单引号。

另外,你使用小写的"here"然后大写的"here",不确定这在许多编程语言中是否ok。

如果我有同样的问题,我会首先得到我的查询在SSMS工作。接下来,我将通过断点或消息框获取它发送给SQL的查询(将其复制粘贴到SSMS中),并在SSMS中执行该查询,以检查它是否返回所需的数据。

很可能你的查询是不正确的,或者它不是通过你的代码正确创建的,数据类型不匹配,等等