0
protected void DropDownServerName_SelectedIndexChanged(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database_Shared_NotebookConnectionString"].ConnectionString);

        conn.Open();

        string serverName = DropDownServerName.SelectedValue;

        string sqlquery = ("SELECT Architecture FROM tblServer WHERE (ServerName = " + serverName + ")");

        SqlCommand command = new SqlCommand(sqlquery, conn);

        txtUpdateArchitecture.Text = command.ExecuteScalar().ToString();

        conn.Close();
    }

DropDownServerName 区域使用 SqlDataSource 连接到 SQL Server 以显示 ServerName 列上的值列表。

在我获得名为“Brad”的选择值之后,我希望 Brad 的 Architecture 列中的值显示在文本框中。但是我得到错误说,无效的列名“Brad”。该列假定为 ServerName,而 Brad 只是 ServerName 列中的一个值。

4

4 回答 4

3

你需要在你的服务器名周围加上引号

string sqlquery = ("SELECT Architecture FROM tblServer WHERE (ServerName = '" + serverName + "')");

或者更好的是,使用参数化查询 [它更安全,可以防止 SQL 注入和字符串中可能污染查询的有趣字符]

string sqlquery = "SELECT Architecture FROM tblServer WHERE ServerName = @ServerName";

SqlCommand command = new SqlCommand(sqlquery, conn);
command.Parameters.AddWithValue("@ServerName", serverName);
于 2012-10-11T18:59:19.157 回答
0

在 WHERE 子句中的 servername 周围添加“”:

... WHERE ServerName = '" + serverName + "' ...
于 2012-10-11T18:59:33.193 回答
0

试试这个。它应该与单引号一起使用。

string sqlquery = ("SELECT Architecture FROM tblServer WHERE ServerName = '" + serverName + "'");
于 2012-10-11T18:59:59.377 回答
0

您可能在变量周围缺少单引号。试试这个

    protected void DropDownServerName_SelectedIndexChanged(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database_Shared_NotebookConnectionString"].ConnectionString);

        conn.Open();

        string serverName = DropDownServerName.SelectedValue;

        string sqlquery = ("SELECT Architecture FROM tblServer WHERE (ServerName = '" + serverName + "')");

        SqlCommand command = new SqlCommand(sqlquery, conn);

        txtUpdateArchitecture.Text = command.ExecuteScalar().ToString();

        conn.Close();
    }
于 2012-10-11T19:00:11.593 回答