【问题标题】:syntax error (comma) in query expression查询表达式中的语法错误(逗号)
【发布时间】:2014-01-02 05:01:52
【问题描述】:

我正在尝试从数据库中获取用户的详细信息以显示在某些文本框中;但是我的代码似乎有问题。不断出现以下错误:

查询表达式中的语法错误(逗号)

这是完整的代码:

string filePath;

try
{
    filePath = (Application.StartupPath + ("\\" + DBFile));
    connection = new System.Data.OleDb.OleDbConnection((ConnectionString + filePath));
    connection.Open();
    System.Data.OleDb.OleDbDataReader reader;
    System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand();
    command.Connection = connection;

    // ---retrieve user's particulars---
    command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1);
    reader = command.ExecuteReader(CommandBehavior.CloseConnection);
    reader.Read();

    // ---display user's particulars---
    textBox2.Text = reader["SSN"].ToString();
    textBox3.Text = reader["FirstName"].ToString();
    textBox4.Text = reader["LastName"].ToString();
}

【问题讨论】:

    标签: c# sql database winforms


    【解决方案1】:

    这里

    command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1);
    

    所以内部 .ToString 方法会在 textBox1 上被调用,而你的 commandText 会变成

    SELECT * FROM Enroll WHERE ID=System.Windows.Forms.TextBox, Text:
    

    因此错误。

    你的意思可能是文本框中的文本

    command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1.Text);
    

    注意: 你不应该一开始就这样做。您应该考虑改用参数化查询。所以,你应该做的是

    SqlCommand cmd = new SqlCommand("SELECT * FROM Enroll WHERE ID=@ID");
    cmd.Parameters.AddWithValue("@ID", textBox1.Text.Trim());
    

    【讨论】:

    • 是的,我真的忘了添加“.text”和“+textBox1”的结尾
    【解决方案2】:

    怎么改

    command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1);
    

    command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1.Text); 
    

    【讨论】:

      【解决方案3】:

      这样会更合适:

      command.CommandText = ("SELECT * FROM Enroll WHERE ID=" + textBox1.text.toString()+"");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-22
        • 1970-01-01
        • 1970-01-01
        • 2015-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-13
        相关资源
        最近更新 更多