将txt文件导入sql 就一句sql代码搞定,导入sql2000的代码。
BULK INSERT 表名 FROM 'F:\\你的文本文件.txt' WITH ( FIELDTERMINATOR ='以什么符号分割数据', ROWTERMINATOR= '以什么符号加\\n结尾')--\\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\\n
例如:BULK INSERT bb FROM 'F:\\2008-02-18.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR= ',\\n')
bb是表名,f盘中的F:\\2008-02-18.txt文件, FIELDTERMINATOR =','每个数据是以逗号分隔的,ROWTERMINATOR= ',\\n'每行数据以逗号回车结尾。
我导入过很多次。
使用BULK INSERT
用法如下:
stu.txt 结构
1,Jim
2,Kate
3,Tom
...
BULK INSERT dbo.TABLE1
FROM 'd:\\stu.txt'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\\n'
)
查看table1里的数据
select * from table1
就ok了。
在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入 SQL2000数据库。
1.数据库准备
在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简 单:id,name两个。
2.txt文本文件导入
对于数据文件导入与导出SQL2000提供了BULK INSERT和BCP语句,在这里可以使用BULK INSERT命令实现。假设在c盘上有一个文本文件stu.txt内容为:
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 pubs.dbo.txtInsert FROM '\"+fPath+\"' WITH (FIELDTERMINATOR = ',',ROWTERMINATOR= '\\n')\",con);
//其中的 FIELDTERMINATOR=','指明字段间所使用的分隔符为逗号
//其中 ROWTERMINATOR= '\\n'指明记录间所使用的分隔符为回车
com.ExecuteNonQuery();
Response.Write(\"\");
}
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(\"\");
}
catch (OleDbException err)
{
Response.Write(\"导入数据库时出错:\" +err.ToString());
break;
}
}
conn.Close();