我正在开发一个程序,该程序允许用户选择 MS Access 表,然后将其导出到特定目的地的 .csv 文件。问题是当所选表包含 sql 特殊字符时出现错误。
我已经对该主题进行了一些研究,并且我知道我需要使用参数,但我无法弄清楚如何实际这样做。这是我的代码示例:
string destination = Form2.destination;
string selectString = "SELECT * FROM " + tablename;
string path = destination + "\\" + tablename + ".csv";
File.Create(path).Dispose();
TextWriter tw = new StreamWriter(path);
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtDataPath.Text);
connection.Open();
DataSet myDataSet = new DataSet();
OleDbCommand command = new OleDbCommand(selectString,connection);
OleDbDataAdapter adapter = new OleDbDataAdapter(command.CommandText,connection);
adapter.Fill(myDataSet, tablename);
到目前为止,如果选择了没有特殊字符的表名,则会创建 csv 文件并且看起来不错,但如果它包含类似“-”的内容,那么我的程序会产生“FROM 子句中的语法错误”是因为特殊的性格。
到目前为止,我所看到的所有示例都不适用于我正在尝试做的具体事情,所以希望有人可以帮助我。谢谢。