C# 如果列标题中有空格…和/或运算符未在c.net中的sql语句中工作以修改excel工作表
如果我在sql语句中使用and/or语句,则会发生运行时错误。请帮助我解决此问题C# 如果列标题中有空格…和/或运算符未在c.net中的sql语句中工作以修改excel工作表,c#,sql,.net,excel,oledb,C#,Sql,.net,Excel,Oledb,如果我在sql语句中使用and/or语句,则会发生运行时错误。请帮助我解决此问题 System.Data.OleDb.OleDbConnection MyConnection; System.Data.OleDb.OleDbCommand myCommand; myCommand = new System.Data.OleDb.OleDbCommand(); string sql = null; MessageBox.Show("Opening " + selectedPath); MyConn
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand;
myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MessageBox.Show("Opening " + selectedPath);
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + rootPath+"FacultyDutiesEnd.xls" + "';Extended Properties=Excel 8.0;");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "Update [Sheet1$] set A1 = '\u221A',A2 = '\u221A',B1 = '\u221A',B2 = '\u221A',C1 = '\u221A',C2 = '\u221A',D1 = '\u221A',D2 = '\u221A',E1 = '\u221A',E2 = '\u221A',F1 = '\u221A',F2 = '\u221A',G1 = '\u221A',G2 = '\u221A'";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
sql = "Update [Sheet1$] set A1 = 'a' where Designation = 'Prof(senior)' and (Faculty Name = 'bob') ";// this line is not being executed unless the and (Faculty Name = 'bob') is removed
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
错误太长,以开始
System.data.oledb.OLEDBEException0x80040E14:查询表达式'Designation='Prof'和Name='bob'中缺少运算符的语法错误
如果
教员姓名='bob'替换为
A2='\u221A'被使用,它正在工作
更新
如果我在设计之间留有空格……即使它不起作用……那么有没有办法让列标题留有空格并执行sql语句呢?我很确定问题在于您的教员姓名列中的空格,这与and或or的使用无关。请尝试:
sql = "Update [Sheet1$] set A1 = 'a' " +
"where Designation = 'Prof(senior)' and [Faculty Name] = 'bob'";
为什么要像Name='bob'那样使用它?为什么不仅仅是Name='bob'?你确定你的“姓名”列是键入的字符吗?你能发布错误消息吗?不,它是字母数字的,因为它是excel文件列。甚至“名称”列也是字母数字的。检查此链接:也许它会帮助Thanx JLRISHE,并为大家提出的模棱两可的问题感到抱歉。。。