1.通过开启Ad Hoc Distributed Queries导入数据


    默认下是关闭的,所以导入前需要开启
    
    启用Ad Hoc Distributed Queries:
关于Excel导入到sqlexec sp_configure 'show advanced options',1
关于Excel导入到sql
reconfigure
关于Excel导入到sql
exec sp_configure 'Ad Hoc Distributed Queries',1
关于Excel导入到sql
reconfigure

    使用完成后,关闭Ad Hoc Distributed Queries:
关于Excel导入到sqlexec sp_configure 'Ad Hoc Distributed Queries',0
关于Excel导入到sql
reconfigure
关于Excel导入到sql
exec sp_configure 'show advanced options',0
关于Excel导入到sql
reconfigure 

    然后使用以下代码作为导入
关于Excel导入到sqlselect * INTO test05091
关于Excel导入到sql
from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;IMEX=1;database=c:\001.xls;','select * from [Sheet1$]')
关于Excel导入到sql

    代码中,在连接字符串的“Extended   Properties”部分设置“IMEX=1”,启用导入模式。这将强制使用ImportMixedTypes=Text   注册表设置。但在此模式下,执行更新操作时可能会出现意外的结果。但是,能够有效的解决数字文本混合列的导入出现“NULL”值的问题。
   注:
    混用数据类型时应注意的事项如上所述,ADO必须猜测Excel工作表或范围中各列的数据类型。(这不受Excel单元格格式设置的影响。)如果同一列中既有数字值,也有文本值,会出现严重的问题。Jet和ODBC 提供程序将返回占多数的类型的数据,但对于占少数的数据类型,则会返回NULL(空)值。如果该列中两种类型数据的数量相等,提供程序将优先选择数字型数据,放弃文本型数据。

    再c#中的应用
    
关于Excel导入到sql    protected void Button3_Click(object sender, EventArgs e)
    }

    注意,这里的插入一定要给足权限!
 

相关文章: