2017-06-16 58 views
-4
string Category = comboBox1.Text; 
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Users\\admin\\Documents\\INV.xlsx; Extended Properties=\"Excel 8.0\""; 
OleDbConnection connection = new OleDbConnection(connectionString); 
string sql = "SELECT * FROM [RAW DATA$] WHERE [Category: Name] = @Category"; 
OleDbCommand cmd = new OleDbCommand(sql, connection); 
cmd.Parameters.AddWithValue("@num", SqlDbType.Int).Value = Category; 
OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection); 
+2

标准的问题与Access (jet oledb)是将它不知道的所有内容解释为参数,因此请确保您的执行文件有一个名为“Category:Name”的列和一个名为“RAW DATA $”的表。 –

+0

而你的问题是? –

回答

1

的OleDbCommand不支持命名参数,看看msdn documentation

变化CommandText这样的:

string sql = "SELECT * FROM [RAW DATA$] WHERE [Category: Name] = ?"; 
+0

string sql =“SELECT * FROM [RAW DATA $] WHERE [Category:Name] =?”; 我确实改变了我的代码,但仍然抛出相同的错误... – JCK

相关问题