如果列标题中存在空白 SPACE .....AND/OR 运算符无法在 c# .net 中的 sql 语句中用于修改 excel sheet
IF A BLANK SPACE IS PRESENT IN THE COLUMN HEADING .....AND/OR operator not working in sql statement in c# .net for modifying an excel sheet
如果我在 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.oledbException(0x80040E14): 查询表达式中的语法错误(缺少运算符)'Designation = 'Prof' and Name = 'bob'.......
如果
教师姓名 = 'bob' 替换为
并使用 A2= '\u221A' 它正在工作
更新
如果我在指定之间保留空白 space ...即使它不起作用 ...那么有没有办法让列标题有空白 space 和 sql语句会被执行吗?
我很确定问题出在 Faculty Name
列名称中的 space,这与 AND
或 [= 的使用无关13=]。请尝试:
sql = "Update [Sheet1$] set A1 = 'a' " +
"where Designation = 'Prof(senior)' and [Faculty Name] = 'bob'";
如果我在 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.oledbException(0x80040E14): 查询表达式中的语法错误(缺少运算符)'Designation = 'Prof' and Name = 'bob'.......
如果
教师姓名 = 'bob' 替换为
并使用 A2= '\u221A' 它正在工作
更新
如果我在指定之间保留空白 space ...即使它不起作用 ...那么有没有办法让列标题有空白 space 和 sql语句会被执行吗?
我很确定问题出在 Faculty Name
列名称中的 space,这与 AND
或 [= 的使用无关13=]。请尝试:
sql = "Update [Sheet1$] set A1 = 'a' " +
"where Designation = 'Prof(senior)' and [Faculty Name] = 'bob'";