Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果列标题中有空格…和/或运算符未在c.net中的sql语句中工作以修改excel工作表_C#_Sql_.net_Excel_Oledb - Fatal编程技术网

C# 如果列标题中有空格…和/或运算符未在c.net中的sql语句中工作以修改excel工作表

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

如果我在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);
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,并为大家提出的模棱两可的问题感到抱歉。。。