在客户端有一张EXCEL电子表怎么样才能远程导入到服务器上的数据库中?
服务器是否也要安装EXCEL?我在本机导入时,说未能创建Microsoft.Jet.OLEDB.4.0实例,如何处理?是不是安装的时候没装那东西?能否提供具体的实现代码啊?先谢了

解决方案 »

  1.   

    -- EXCEL导到远程SQL
    insert OPENDATASOURCE(
    'SQLOLEDB',
    'Data Source=远程ip;User ID=sa;Password=密码'
    ).库名.dbo.表名 (列名1,列名2)
    SELECT 列名1,列名2
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')xactions$
      

  2.   

    -- EXCEL导到远程SQL
    insert OPENDATASOURCE(
    'SQLOLEDB',
    'Data Source=远程ip;User ID=sa;Password=密码'
    ).库名.dbo.表名 (列名1,列名2)
    SELECT 列名1,列名2
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions$
      

  3.   

    将数据内容读到 dataset中然后在更新到远程的 数据库表中就行了
      

  4.   

    无论是用com还是Jet,都可以,最好是把excel文件加载到服务器导
      

  5.   

    string fileName=Server.MapPath("")+"\\upload"+"\\test.xls";
    myFile.PostedFile.SaveAs(fileName);
    string extName=System.IO.Path.GetExtension(myFile.PostedFile.FileName);
    if(extName!=".xls"||extName.Length<1)
    {
    Response.Write( "<script language=javascript>alert('数据导入失败.可能是文件格式或路径不正确!!!');</script>");
    return;
    }// string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '"+fileName+"'"+";Extended Properties=Excel 8.0";
    OleDbConnection cnnxls = new OleDbConnection (mystring);
    OleDbDataAdapter myDa =new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
    DataSet myDs =new DataSet();
    myDa.Fill(myDs,"fzr");
    if(myDs.Tables[0].Rows.Count<=0)
    {
    Response.Write( "<script language=javascript>alert('文件中可能没有数据,请检查后重新导入!');</script>");
    return;
    } zjid=new int[myDs.Tables[0].Rows.Count];
    string strSql = "";
    string CnnString="Provider=SQLOLEDB;"+ConStr;
    OleDbConnection conn =new OleDbConnection(CnnString);
    OleDbCommand myCmd =null; try
    {
    conn.Open ();
    for(int i=0; i<myDs.Tables[0].Rows.Count; i++)
    {
    strSql="insert into PSZJJBQK(XM,XB,NL,GZDW,ZW,ZC,BYYX,XL,ZY,LXFS,EMAIL,CDGJJXMQK,QDDKYCGJSHJLQK,ZYXSJGRZQK,BLXYJLQK) values ('";
    strSql += myDs.Tables[0].Rows[i]["XM"].ToString() + "', '";
    strSql += myDs.Tables[0].Rows[i]["XB"].ToString() + "', '";
    strSql += myDs.Tables[0].Rows[i]["NL"].ToString() + "', '";
    strSql += myDs.Tables[0].Rows[i]["QDDKYCGJSHJLQK"].ToString() + "', '"; strSql += myDs.Tables[0].Rows[i]["BLXYJLQK"].ToString() + "')";
    strSql +="select @@IDENTITY";
    try
    {
    myCmd=new OleDbCommand(strSql,conn);
    zjid[i]=int.Parse(myCmd.ExecuteScalar().ToString().Trim());
    }
    catch
    {

    Response.Write( "<script language=javascript>alert('数据导入失败!');</script>");
    return;
    }
    }
    catch................
      

  6.   

    照这么说,是要先把EXCEL传到服务器上了?那服务器上是不是要装EXCEL?
    我用上面的那个远程导入试过了,没用。报错!那说未能创建Microsoft.Jet.OLEDB.4.0实例是怎么回事?
      

  7.   

    不用装EXCEL,你也不能给服务器乱装东西。使用Using引用oledb了吗
      

  8.   

    哦,这样看来还是要上传先了,不能直接导入到服务器的SQL SERVER中了。
    我是想直接导入,省的以后再删!