如何在C#中使用组合框在MS Acess中打开不同的表

时间:2018-01-10 11:01:14

标签: c# ms-access

此代码由我的讲师提供,此代码用于从ms访问中检索数据。我尝试调整它而不是只打开一个表,我可以通过使用填充表名的组合框从ms访问中选择一个表。但是我收到了错误" FROM子句中的语法错误"。

这是代码:

             //to clear existing  data in the view
            dataGridView.Rows.Clear();
            //SQL retrieve in DB
            string sql = "SELECT * FROM" + comboBoxcatagory.Text;
            cmd = new OleDbCommand(sql, con);

            //open connection to DB
            con.Open();
            adapter = new OleDbDataAdapter(cmd);
            adapter.Fill(dt);

            foreach (DataRow row in dt.Rows)
            {
                //create function populate
                populate(row[0].ToString(), row[1].ToString(), row[2].ToString());
            }

            //close DB connection 
            con.Close();
            //clear the data row
            dt.Rows.Clear();
            //Bind to load in text box
            dataGridView.SelectionChanged += dataGridView_SelectedIndexChanged;

3 个答案:

答案 0 :(得分:2)

" FROM"之后需要一个空格。 ..

string sql = "SELECT * FROM" + comboBoxcatagory.Text;

你的代码会生成说" SELECT * FROMmytable"

你需要

string sql = "SELECT * FROM " + comboBoxcatagory.Text;

答案 1 :(得分:1)

因为表格名称贴在From上,所以From之后需要空格:

 string sql = string.Format("SELECT * FROM {0}", comboBoxcatagory.Text.Trim());

或在C#6中:

var name= comboBoxcatagory.Text.Trim();
string sql =  $"SELECT * FROM {name}";

答案 2 :(得分:0)

在SQL查询中创建空格后,它应该是

 string sql = "SELECT * FROM " + comboBoxcatagory.Text.trim();