向SqlServer中导入Txt文本文档中已有固定格式的数据
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是表名,c盘中的C:1.txt文件, FIELDTERMINATOR =','每个数据是以逗号分隔的,ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。
使用BULKINSERT
用法如下:
stu.txt 结构
1,Jim
2,Kate
3,Tom
...
BULK INSERT dbo.TABLE1
FROM 'c:\1.txt'
WITH (
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
)
查看table1里的数据
select * from table1
就ok了。
在练习中使用这样的方法在WinForm程序中实现文本文档向SqlServer数据库中导入数据
1.数据库准备
在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简 单:id,name两个。
2.txt文本文件导入
对于数据文件导入与导出SQLServer提供了BULK INSERT和BCP语句,在这里可以使用BULK INSERT命令实现。假设在c盘上有一个文本文件stu.txt内容为:
1,tom
2,jack
3,jhon
......
实现导入的C#代码如下:
TextBox
Button
//上面两个控件自己添加
代码
protected void Button1_Click(object sender, EventArgs e)
{
string connectstr = ConfigurationManager.ConnectionStrings["strsql"].ConnectionString;
SqlConnection conn = new SqlConnection(connectstr);
conn.Open();
SqlCommand command = new SqlCommand();
command.CommandText = "BULK INSERT N_Student from '" + TextBox1.Text + "' with (fieldterminator='|',rowterminator='\n')";
command.Connection = conn;
try
{
int i = command.ExecuteNonQuery();
if (i > 0)
{
Response .Write ("<scritp>alert('导入成功!')</script>");
this.TextBox1.Text = "";
}
}
catch (Exception error)
{
Response.Write("<scritp>alert('导入失败:"+error+"')</script>");
}
conn.Dispose();
command.Dispose();
}
这样做有一点最明显的不足是需要使用者自行输入文本文档的完整路径