就一句sql代码搞定,导入sql2000的代码。 
BULK INSERT 表名 FROM 'F:\你的文本文件.txt' WITH  ( FIELDTERMINATOR ='以什么符号分割数据', ROWTERMINATOR= '以什么符号加\n结尾sqltransaction什么意思')--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n 
例如:BULK INSERT bb FROM 'F:\' WITH  ( FIELDTERMINATOR =',', ROWTERMINATOR= ',\n') 
bb是表名,f盘中的F:\文件,  FIELDTERMINATOR =','每个数据是以逗号分隔的,ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。
我导入过很多次。
 
 
 
 
使用BULK INSERT
用法如下:
 结构
1,Jim
2,Kate
3,Tom
...
BULK INSERT dbo.TABLE1
FROM 'd:\'
WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)
查看table1里的数据
select * from table1
ok了。
 
 
在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入 SQL2000数据库。
1.数据库准备
SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简 单:idname两个。
2.txt文本文件导入
对于数据文件导入与导出SQL2000提供了BULK INSERTBCP语句,在这里可以使用BULK INSERT命令实现。假设在c盘上有一个文本文件内容为:
    1,tom
    2,jack
    3,jhon
    ......
实现导入的C#代码如下:
protected System.Web.UI.HtmlControls.HtmlInputFile fName;  
protected System.Web.UI.WebControls.Button BtnInsert;
//上面两个控件自己添加
 
代码
private void BtnInsert_Click(object sender, System.EventArgs e)
  {
                string fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件                 
            string extName=fPath.Substring(fPath.LastIndexOf(".")+1);//获得文件的扩展名           
            SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");/
/数据库连接对象
            con.Open();
            try
      {                   
                    SqlCommand com=new SqlCommand("BULK INSERT Insert FROM '"+fPath+"' WITH  (FIELDTERMINATOR = ',',ROWTERMINATOR= '\n')",con);
                       //其中的 FIELDTERMINATOR=','指明字段间所使用的分隔符为逗号
                       //其中 ROWTERMINATOR= '\n'指明记录间所使用的分隔符为回车
                    com.ExecuteNonQuery();
                    Response.Write("<script language=javascript& gt;alert('数据导入成功!')</script>");                   
                }
             catch (SqlException SQLexc)
                {
                    Response.Write("导入数据库时出错:" + SQLexc.ToString());
                }
con.Close();
}
好了,这个txt文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的excel文件的导入中介绍。
3.excel 文件的导入
c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下:
     编号  姓名
    1        tom
    2        jack
    3        john
    ......
 意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。
为了演示事物出错回滚,在这里将txtInsert数据库表中的 id字段设置为主键。实现的C#代码如下:
代码
private void BtnInsert_Click(object sender, System.EventArgs e)
  {
   string fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件     
   string extName=fPath.Substring(fPath.LastIndexOf(".")+1);//获得文件的扩展名   
   SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//数据库连接对象
   con.Open();   
    //注意下面的连接字符串,是它起到了导入的作用
    SqlCommand excelCmd=new SqlCommand("insert into txtInsert select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE="+fPath+"',Sheet1$)",con);
    SqlTransaction myTran=con.BeginTransaction();//开始一个事务操作
    excelCmd.Transaction=myTran;
    try
    {       
     excelCmd.ExecuteNonQuery();
     myTran.Commit();//提交事务       
     Response.Write("<script language=javascript& gt;alert('数据导入成功!')</script>");
    }
    catch (SqlException err)
    {       
     myTran.Rollback(); //出错回滚事务操作
     //以下三行是去掉数据库出错信息中的非法字符单引号、回车和换行符,否则在使用时 javascript代码将有语法错误
     //因为js的编码和c#的编码不同
     string errString=err.Message.Replace("'"," ");
     errString=errString.Replace(Convert.ToChar(13).ToString(),"");
     errString=errString.Replace(Convert.ToChar(10).ToString(),"");
     //显示出错信息框
     Response.Write("<script language=javascript& gt;alert('导入数据库时出错!详细信息:"+errString+"')</script>");         
    }   
   con.Close();
  }
这里显示出错信息框开始我没有田间那三行代码,结果搞了半天,最后还是在html文件中
发现javascript代码部分出现了分行,老是提示未结 束的字符串常量,所以导致不能打开信息框,郁闷死我了,花了好多时间。
4.excel中部分列导入数据库的方法
上面讲了关于将整个 excel文件导入数据库的方法,那么在实际项目中遇到将excel文件中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了:
 
代码
string   fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件     
                   string  extName=fPath.Substring(fPath.LastIndexOf(".")+1);//获得文件的扩展名   
                   SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//数据
库连接对象
                   con.Open();               
                   string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '"+fPath+"';Extended Properties=Excel 8.0";

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。