c# System.Data.OleDb.OleDbException (0x80004005): Cannot expand named range
2013-05-20 12:47
543 查看
使用OleDb读写Excel时,遇到如下异常信息:
System.Data.OleDb.OleDbException (0x80004005): Cannot expand named range
代码:
如果你对同一个sheet进行了一次Insert操作,这样使用完全没有问题,但是当你第二次调用Insert时,恭喜你,报错了!Cannot expand named range!
出错的原因在于你的insert语句,
这个语句怎么了?第一次插入的时候不是好好的! 经过漫长的查询和调试后发现,insert语句你要这么写:
看到区别了吗?区别就在于 “$”,就这一刀啊,折磨了我多少个日日夜夜! 还有一点需要注意:Create的时候是千万不能加这个“$"的!
搞清这个问题后,不禁对微软兄表示不满:这一刀到底是加还是不加啊,Insert时要加的话,我第一次Insert为啥又不需要加呢?
System.Data.OleDb.OleDbException (0x80004005): Cannot expand named range
代码:
var connStr = string.Format("provider = microsoft.ace.oledb.12.0;data source={0};Extended Properties='Excel 12.0;HDR=No;IMEX=1'", path); var conn = new OleDbConnection(connStr); var createSql = "CREATE TABLE [TableName] ([Title],[Content])"; using (OleDbCommand com = new OleDbCommand(createSql, conn)) { com.ExecuteNonQuery(); } var insertSql = "INSERT INTO [TableName] ([Title],[Content]) VALUES ('title','content')"; using (OleDbCommand com = new OleDbCommand(insertSql, conn)) { com.ExecuteNonQuery(); }
如果你对同一个sheet进行了一次Insert操作,这样使用完全没有问题,但是当你第二次调用Insert时,恭喜你,报错了!Cannot expand named range!
出错的原因在于你的insert语句,
var insertSql = "INSERT INTO [TableName] ([Title],[Content]) VALUES ('title','content')";
这个语句怎么了?第一次插入的时候不是好好的! 经过漫长的查询和调试后发现,insert语句你要这么写:
var insertSql = "INSERT INTO [TableName$] ([Title],[Content]) VALUES ('title','content')";
看到区别了吗?区别就在于 “$”,就这一刀啊,折磨了我多少个日日夜夜! 还有一点需要注意:Create的时候是千万不能加这个“$"的!
搞清这个问题后,不禁对微软兄表示不满:这一刀到底是加还是不加啊,Insert时要加的话,我第一次Insert为啥又不需要加呢?
相关文章推荐
- C# 解决{System.Data.OleDb.OleDbException (0x80004005): 提示由于将在索引,主关键字或关系中创建重复的值,请求对表的改变没有成功
- c#.net:System.Data.OleDb.OleDbException: 外部表不是预期的格式的解决办法
- 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误 (asp.net C#)
- C# OleDbConnection操作access出现System.Data.OleDb.OleDbException其他信息: 未指定的错误
- C# 使用System.Data.OleDb;避免oracle中文乱码问题
- System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
- System.Data.OleDb.OleDbException: 未指定的错误的解决方法
- System.Data.OleDb.OleDbException: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
- System.Data.OleDb.OleDbException: Operation must use an updateable query
- “System.Data.OleDb.OleDbException: 未指定的错误”
- “System.Data.OleDb.OleDbException: 未指定的错误”与
- System.Data.OleDb.OleDbException: 未指定的错误的完美解决方法
- 关于system.data.oledb.oledbexception 未定义的错误
- Windows XP下使用ASP.Net 访问Access数据库提示“System.Data.OleDb.OleDbException: 未指定的错误”的解决办法
- ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
- c#.net GridView System.ArgumentOutOfRangeException
- 关于 System.Data.OleDb.OleDbException
- C#中DataTable报异常 System.Data.EvaluateException
- System.Data.OleDb.OleDbException: Unspecified error异常处理的方法
- 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误 这个错误是access数据库特有的错误,当access频繁读取或操作过多的时候就会发生这个错误,微软