大神们,求助啊。C# 更新Excel数据,出现数据类型不符合。怎么改都不成功
private void button5_Click(object sender, EventArgs e){
string sql = "update [sheet1$A2:F15] set B=5553 where A='11'";
DoOleSql(sql);
}
protected void DoOleSql(string sql)
{
OleDbConnection conn = new OleDbConnection();
String serverFilename = "d:\\11.xlsx";
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + serverFilename + "';Extended Properties='Excel 12.0;HDR=YES;IMEX=2'";
try
{//打开连接
MessageBox.Show("0");
conn.Open();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
// Response.Write(e.ToString());
}
OleDbCommand olecommand = new OleDbCommand(sql, conn);
try
{//执行语句
MessageBox.Show("1");
olecommand.ExecuteNonQuery();
}
catch (Exception eee)
{
MessageBox.Show(eee.ToString());
// Response.Write(eee.ToString());
conn.Close();
}
finally
{
conn.Close();//关闭数据库
}
conn.Close();
} --------------------编程问答-------------------- 看下数据库B=5553,B是什么数据类型,估计是B的类型不正确 --------------------编程问答-------------------- 我觉得你的问题,不在代码,而是excel单元格的格式上。 --------------------编程问答-------------------- http://blog.csdn.net/happy09li/article/details/7431967 --------------------编程问答-------------------- set B='5553'
改成这样呢 --------------------编程问答-------------------- 我已经将所有的Excel格式全部改成文本格式。不然改成那种格式比较可行呢? --------------------编程问答--------------------
对,或者改一下excel的列的数据类型,改为数字 --------------------编程问答-------------------- 更改了数据类型还是会报错。经常是这两个错误换着报。
1.操作必须使用一个可更新的查询
2.数据类型不符合 --------------------编程问答-------------------- 如果A、B类型都是字符串,换成 string sql = "update 表名 set B='5553' where A='11'"; --------------------编程问答--------------------
顶一下,这样的问题可能在一些小细节上,以前我也经常遇到这样的问题。
希望你尽快能解决你的问题。 --------------------编程问答--------------------
会报错。
错误信息为"操作必须使用一个可更新的查询"
--------------------编程问答-------------------- 你把连接EXECL的地方的IMEX=1 改成 IMEX=2 --------------------编程问答--------------------
我本来就是用IMEX=2
补充:.NET技术 , C#