在excel中有好多行数据。我想成批录入到一个数据表里。现在问题是:
如果有的行中有数据库不识别的字符,就跳过不入,否则就录入到数据库。并要求把没录入的数据行记下,以便手机录入。
请问这怎么解决。

解决方案 »

  1.   

    一个导excel入sql数据库的我正用的程序,是button1按钮一点就开始导入,我导的是excel是第二三colum..如下:private void Button1_Click(object sender, System.EventArgs e)
    {
    string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = 'D:/ExportToExcel/excel/test.xls';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);if(myDs.Tables[0].Rows.Count > 0)
    {
    string strSql = "";
    string CnnString="Provider=SQLOLEDB;database=testnews;server=(local);uid=sa;pwd=";
    OleDbConnection conn =new OleDbConnection(CnnString);
    conn.Open ();
    OleDbCommand myCmd =null;for(int i=0; i<myDs.Tables[0].Rows.Count; i++)
    {
    strSql="insert into news(title,body) values ('";
    strSql += myDs.Tables[0].Rows[i].ItemArray[1].ToString() + "', '";
    strSql += myDs.Tables[0].Rows[i].ItemArray[2].ToString() + "')";try
    {
    myCmd=new OleDbCommand(strSql,conn);
    myCmd.ExecuteNonQuery();
    Label8.Text = "<script language=javascript>alert('数据导入成功.');</script>";
    }
    catch
    {
    Label8.Text = "<script language=javascript>alert('数据导入失败.');</script>";
    }
    }
    conn.Close();
    }}
    }
      

  2.   

    看看这个从excel批量倒入数据库
    private DataSet GetCollection()
    {
    DataSet ds=new DataSet();
    string strCon,strCmm;
    //strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\irms\\tmp\\irsbd.xls;Extended Properties=Excel 8.0;"; 
    strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("tmp\\irsbd.xls")+";Extended Properties=Excel 8.0;"; 
                strCmm="select distinct * from [Sheet1$]";
    OleDbConnection oleCnn=new OleDbConnection(strCon);
    OleDbCommand oleCmm=new OleDbCommand(strCmm,oleCnn);
        OleDbDataAdapter oleDa=new OleDbDataAdapter(oleCmm);
    oleDa.Fill(ds,"irsbd");return ds;}
            
    private void PutData(DataSet ds)
    {
    string strCon=Application["strCon"].ToString();
    string strSql="select top 1 * from irsbd";
    DataSet myDs=new DataSet();
    SqlDataAdapter da=new SqlDataAdapter(strSql,strCon);
                da.Fill(myDs,"irsbd");
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    if(ds.Tables[0].Rows[i]["sbdno"].ToString().Trim()!="")
    {
    DataRow dr=myDs.Tables[0].NewRow();
    DataRow dr1=ds.Tables[0].Rows[i];
    dr["sbdno"]=dr1["sbdno"];
    dr["sbdnm"]=dr1["sbdnm"];
    dr["sbdpd"]=dr1["sbdno"];
    dr["sbdit"]=dr1["sbdit"];
    dr["sbddt"]=dr1["sbddt"];
    dr["sbdco"]=tbCo.Text.Trim();dr["sbdel"]=DateTime.Today;
    dr["sbdcs"]=0;
    dr["sbdas"]=0;
    dr["sbdps"]=0;
    dr["sbdcs1"]=0;
    dr["sbdcs2"]=0;
    dr["sbdcs3"]=0;
    dr["sbdcs4"]=0;
    dr["sbdas1"]=0;
    dr["sbdas2"]=0;
    dr["sbdas3"]=0;
    dr["sbdas4"]=0;myDs.Tables[0].Rows.Add(dr);
    }SqlCommandBuilder sqlCb=new SqlCommandBuilder(da);da.Update(myDs,"irsbd");
    myDs.AcceptChanges();
    }
      

  3.   

    用try{}catch{}或者自己规范格式,然后读取Excel中的每一行字段匹配!
      

  4.   

    Asp.net页面输出到EXCEL 
    【简 介】
      近来,在开发ISO文件管理系统的时候,曾经遇到过要将ASPX直接输出到EXCEL的需求,现将经验所得与大家分享。其实,利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。 一、定义文档类型、字符编码      Response.Clear();    Response.Buffer= true;    Response.Charset="utf-8";      //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开    //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm      Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");    Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");      //Response.ContentType指定文件类型 可以为application/ms-excel    application/ms-word    application/ms-txt    application/ms-html    或其他浏览器可直接支持文档     Response.ContentType = "application/ms-excel";    this.EnableViewState = false;     二、定义一个输入流      System.IO.StringWriter oStringWriter = new System.IO.StringWriter();    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);     三、将目标数据绑定到输入流输出      this.RenderControl(oHtmlTextWriter);       //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件      Response.Write(oStringWriter.ToString());    Response.End();     总结:本例程在Microsoft Visual Studio .NET 2003平台下测试通过,适用于C#和VB,当采用VB的时候将 this 关键字改成 me 。
      

  5.   

    各位大哥.
    如果有的行中有数据库不识别的字符,就跳过不入,否则就录入到数据库
    主要是这个怎么办>
    用try catch 能实现吗?