elvis0123

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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


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

    使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure 

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

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

    再c#中的应用
    
    protected void Button3_Click(object sender, EventArgs e)
    
{
        
if (FileUpload1.PostedFile != null)
        
{
            
string str = FileUpload1.PostedFile.FileName;
            
int i = str.LastIndexOf("\\");//取得文件名中最后一个"."的索引
            String filename = str.Substring(i + 1); //获取文件扩展名 
            
//FileUpload1.PostedFile.SaveAs(Server.MapPath("xls") + "\\" + filename);/*  两种方法都可以 */
            FileUpload1.PostedFile.SaveAs(Server.MapPath("xls"+ @"\" + filename);
            Label1.Text 
= "文件名为" + filename;

            SqlConnection conn 
= new SqlConnection(strConnection);
            SqlCommand cmd 
= conn.CreateCommand();
            cmd.CommandText 
= "select * INTO test05091 from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;IMEX=1;database=" + Server.MapPath("xls"+ "\\" + filename + ";','select * from [Sheet1$]')";
            conn.Open();
            cmd.ExecuteNonQuery();
            Response.Write(
"导入");
            conn.Close();
        }

    }

    注意,这里的插入一定要给足权限!
 
posted on 2008-05-16 11:09  elvis  阅读(345)  评论(0编辑  收藏  举报