此代码由我的讲师提供,此代码用于从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;
答案 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();