如何做在,asp.net网站的客户端下,把excel数据直接导入到服务器中的sqlserver中

解决方案 »

  1.   

    上传:
    string [] up =this.File1.PostedFile.FileName.Split(new char []{'\\'});
    string p=MapPath("")+"\\"+UpFilePath+"\\"+up[up.Length-1];
    if(File.Exists(p))
    {
    Response.Write("<script language='javascript'>alert('该文件名已经存在!');</script>"); 
    }
    else
    {
    FileSize=File1.PostedFile.ContentLength;
    byte[] arrFile=new byte[FileSize];
    if(FileSize>0)
    {
    string [] Date=DateTime.Now.ToString().Split(' ');
    string [] name1= Date[0].Split('-');
    string [] name2=Date[1].Split(':');
    for(int i=0;i<3;i++)
    {
    Mapname+=name1[i]+name2[i];
    }
    Mapname=Mapname+up[up.Length-1];
    FileName=up[up.Length-1];
    string [] getdoctype=FileName.Split('.'); 
    dType=getdoctype[1].ToString();
    FilePath="\\"+UpFilePath+"\\"+Mapname;  
    Stream  StreamReader = File1.PostedFile.InputStream;
    StreamReader.Read(arrFile,0,FileSize);  this.File1.PostedFile.SaveAs(MapPath("")+"\\"+UpFilePath+"\\"+Mapname);
    }
    else
    {
    Response.Write("<script language='javascript'>alert('批量导入失败!');</script>");
    return;
    }
    }读取:
    System.Data.DataTable dt=new DataTable(); System.Data.OleDb.OleDbConnection conn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+MapPath("")+"\\"+UpFilePath+"\\"+Mapname+";"+"Extended Properties=Excel 8.0;");
    System.Data.OleDb.OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]",conn);
    System.Data.OleDb.OleDbDataAdapter oda=new OleDbDataAdapter();
    DataSet ds=new DataSet();
    oda.SelectCommand=cmd;
    cmd.CommandType = CommandType.Text;
    try
    {
    conn.Open();
    oda.Fill(ds);
                                         return ds;//返回记录集
    }
    catch
    {
    MyBMS.Data.Common.ShowClientInfo(this.Page,"所选择的Excel文件被其他用户以独占方式打开或者您没有查看数据的权限!");
    return;
    }然后对应插入到你的数据库里!!~ 简单的插入你可以搞定吧
      

  2.   

    I need to syudy it .Tks