查询expression式中的语法错误(缺less运算符)“”
我在删除(DELETE)行时遇到问题。 每次我在我的string sql
添加列名称它显示错误“查询expression式中的语法错误(缺less运算符)”。 这是我的代码:
OleDbConnection myCon = new OleDbConnection("provider = Microsoft.Jet.OLEDB.4.0;DataSource = '" + fileLocation + "'; Extended Properties=Excel 8.0;"); OleDbCommand myCmd = new OleDbCommand(); myCmd.Connection = myCon; string sql = "DELETE * FROM [" + tablename + "$] where _date = '" + full_date + "'"; myCmd.CommandText = sql; myCon.Open(); myCmd.ExecuteNonQuery(); myCon.Close();
例如我的string sql
值是
"DELETE * FROM [Sheet1$] where _date = '03 09 2015'"
这会产生这个错误:
查询expression式中的语法错误(缺less运算符)“_date = '03 09 2015'”
插入数据到我的excel文件时,我没有任何问题,但是当它删除它说这个错误。 还在练习互动,请和我一起裸照
试着用这个即删除*
,用DELETE
语句不需要:
string sql = "DELETE FROM [" + tablename + "$] where _date = '" + full_date + "'";
此外,你在full_date
得到的价值似乎没有正确的格式。 使用full_date
中的格式检查您在full_date
中获得的值。
在旁注:
你的代码很容易被SQL注入。 您需要使用准备好的语句来避免这种情况。
您的查询中有语法错误,请从您的查询中删除*
,因此您的查询可能如下所示:您可以在此查看语法:
string sql = "DELETE FROM [" + tablename + "$] where _date = '" + full_date + "'";
而你正在使用的查询将为sql注入打开一个广泛的方式,所以更好的方法是使用参数化查询。
你应该试试
string strQuery= "DELETE FROM @TableName where _date = '@date'"; usin (SqlCommand cmd = new SqlCommand(strQuery)){ cmd.Parameters.AddWithValue("@TableName", tablename+"$" ); cmd.Parameters.AddWithValue("@date", full_date ); myCon.Open(); cmd.ExecuteNonQuery(); }
- DevExpress DragDrop在treelist中抛出HRESULT 800ac472
- 一个简单的C#DLL – 我如何从Excel,Access,VBA,VB6中调用它?
- 在Excel工作簿中将数据读取到ArrayList中时,性能低下
- 在C#windows应用程序中replaceExcel单元格值时出现警告消息
- Excel.Interop的Worksheet.UsedRange属性可能的错误?
- Codeplex Excel数据读取器为Excel 2010提供空数据集
- Excel将数据添加到后台代码中的WorksheetPart
- 以编程方式创build自动调整列大小的Excel工作表
- 使用EPPlus库在Excel中用它们的值replace公式