private DataTable zGetTableContent(string tablename)
{
DataTable dt = new DataTable();
Connection.Open();
MessageBox.Show(tablename);
Adapter = new OleDbDataAdapter("SELECT * FROM '%" + tablename + "%'", Connection);
Adapter.Fill(dt);
Connection.Close();
return dt;
}
尝试使上述代码正常工作,但正在努力解决它。我想我的字符串做错了。但无法弄清楚是什么。
字符串完美地传递给方法。 MessageBox显示正确的字符串。但我的适配器说
查询中的语法错误。不完整的查询条款
如果我自己输入表名,一切正常。
修改
连接数据库(Access):
static private OleDbConnection Connection = new OleDbConnection();
private void zPrepConnect(string SourceFile)
{
Connection.ConnectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source = {0};", SourceFile);
Command.Connection = Connection;
}
编辑#2: 表名如下:
编辑#3: 从表名中删除了空格但仍无法正常工作:
答案 0 :(得分:2)
你不需要'或查询中的%符号,只需使用名称:
Adapter = new OleDbDataAdapter("SELECT * FROM [" + tablename + "]", Connection);
检查msdn以确保语法。
答案 1 :(得分:0)
您还可以使用string.Format
:
string query = string.Format ("select * from \"{0}\" ", TableName);