Visual Studio中SELECT的错误查询语法

时间:2018-07-06 15:14:11

标签: c# sql sql-server

当我尝试在Visual Studio项目中运行简单的SELECT查询时,出现此异常:

  

System.Data.SqlClient.SqlException:'关键字'Table'附近的语法不正确。'

我的代码:

public partial class Form1 : Form
{
    SqlConnection cn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Claudia\source\repos\WindowsFormsApp7\WindowsFormsApp7\Database1.mdf;Integrated Security=True");

    SqlCommand cmd = new SqlCommand();
    SqlDataReader dr;

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        cmd.Connection = cn;
        loadlist();
    }

    private void loadlist()
    {
        listBox1.Items.Clear();
        listBox2.Items.Clear();
        cn.Open();

        // here I get the exception
        cmd.CommandText = "SELECT * FROM Table";

        dr = cmd.ExecuteReader();

        if(dr.HasRows)
        {
            while (dr.Read())
            {
                listBox1.Items.Add(dr[0].ToString());
                listBox2.Items.Add(dr[1].ToString());
            }
        }
        else
        {
            listBox1.Items.Add("No items");
        }

        cn.Close();
    }
}

我尝试了所有已知的方法,也没有尝试重新创建项目,但是每次都会得到此异常。当我运行项目时,数据库正在断开连接。我该怎么解决?

1 个答案:

答案 0 :(得分:4)

Table是SQL Server的关键字。您需要通过将其包装在方括号中来对其进行转义:

cmd.CommandText = "SELECT * FROM [Table]";

顺便说一句:Table当然不是一个很好的表名。