【问题标题】:System.Data.SqlClient.SqlException: Invalid column name 'ErneGaels'System.Data.SqlClient.SqlException:列名“ErneGaels”无效
【发布时间】:2019-11-02 10:11:42
【问题描述】:

我正在从我的 SQL Server 数据库中读取表数据并收到错误

System.Data.SqlClient.SqlException:列名“ErneGaels”无效 enter image description here

我在我的 SQL 查询中使用字符串值 TeamN 作为我的 Session["TeamName"] 值,但是它不起作用。

Session["TeamName"]ErneGaels,因为那是登录的团队)

每当我在 SQL 查询中对团队名称的值(例如“ErneGaels”)进行硬编码时,它都能完美运行,并且我得到了我需要的结果。

DataTable dt = new DataTable();

sqlcon.Open();
string TeamN = (string)Session["TeamName"];

SqlDataReader myReader = null;

SqlCommand myCommand = new SqlCommand("SELECT * FROM Registeration WHERE TeamName = " + TeamN, sqlcon);

myReader = myCommand.ExecuteReader();

while (myReader.Read())
{
    lblID123.Text = "" + (myReader["TeamID"].ToString());
    lblName.Text = "" + (myReader["TeamName"].ToString());
    lblCounty.Text = "" + (myReader["County"].ToString());
    lblEmail.Text = "" + (myReader["Email"].ToString());
    lblPassword.Text = "" + (myReader["Password"].ToString());

    Session["TeamID"] = lblID123.Text.Trim();
}

sqlcon.Close();

我希望能够返回“TeamID”值,以便将其分配给会话。

【问题讨论】:

    标签: c# asp.net sql-server visual-studio


    【解决方案1】:

    尝试如下...

    SqlCommand myCommand = new SqlCommand("SELECT * FROM Registeration WHERE TeamName = @TeamName", sqlcon);

    myCommand.Parameters.Add("@TeamName", TeamN)

    【讨论】:

    • 谢谢,这行得通,但我不得不把它写成 myCommand.Parameters.AddWithValue("@TeamName", TeamN);
    • 是的,我也改了
    • @TommyK123,请选择已回答。
    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 2016-04-22
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多