我尝试在OLED中使用OLEDB插入行,问题是:
ex:
public void Insert(字符串文本,Excel.Worksheet ws,string column){
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO ["+ws.Name+"$] " + "([" + column + "]) VALUES(' " + text + " ')", _oleConn); cmd1.ExecuteNonQuery(); }
答案 0 :(得分:2)
可能是工作表在幕后保留这些列的XML。您当前的代码将行放在工作表的末尾。必须修改代码以删除要放入的行之前的空行,然后添加。一个例子就是:
public void Insert (string text, Excel.Worksheet ws, string column){
OleDbCommand cmd0 = new OleDbCommand("DELETE FROM ["+ws.Name+"$] where /*column1*/ = '' AND /*column2*/ = '' /*...*/ AND /*columnN*/ = ''", _oleConn);
cmd0.ExecuteNonQuery();
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO ["+ws.Name+"$] " +
"([" + column + "]) VALUES(' " + text + " ')", _oleConn);
cmd1.ExecuteNonQuery();
}
答案 1 :(得分:1)
删除行中的数据不会删除该行存在的Excel记录。您可以通过选择整个行来删除行(单击行号)然后右键单击并选择“删除”。