在线等候,将txt文件中的内容导入到sqlserver数据库中

liaoxiaohua1981 2006-04-21 06:05:17
有一txt文档,其中以TAB键隔开,怎样用C#将其中的内容导入到数据库中,那位高手能提供完整的代码
txt 格式如下:
100005 510108198401033026 20050324185327 0 0
100006 350321196708506856 20050324191552 0 0
100007 511122441255859 20050324201011 0 0
100008 511122556687452 20050324201830 0 0
100009 430321831105155 20050325114032 0 0
100010 411122197204295019 20050325133453 0 0
100011 513028196204170025 20050325165628 0 0
100012 622801198502182013 20050325171827 0 0
100013 622801198502182013 20050325173949 0 0
100014 350425199008262 20050325180942 0 0
100015 501623198303124726 20050325184003 0 0
100016 511522198108011234 20050325184122 0 0
100017 512456321789078546 20050325215029 0 0
100018 510722196901150270 20050325224820 0 0
...全文
491 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2006-04-21
  • 打赏
  • 举报
回复
根據你給的數據,自己建表,測試成功。

其實這樣的代碼在網上很多,google就可以出來很多。
paoluo 2006-04-21
  • 打赏
  • 举报
回复
private void Button1_Click(object sender, System.EventArgs e)
{
string sLine="";
string strCmdText="";
string[] splitData=new string[5];
//此處寫入你要寫入文本的完整路徑
string txtFileName="D:\\TEST.txt";

StreamReader TxtReader = new StreamReader(txtFileName);

//此處寫入自己數據庫的連接字符串
SqlConnection conn =new SqlConnection("server=(local);user=sa;password=;database=YourDateabase");
conn.Open();

try
{

do
{
//Read the txt file
sLine = TxtReader.ReadLine();
if (sLine == null)
break;
splitData=sLine.Split('\t');

//Insert Datas to the table
//此處可按照實際表的格式調整SQL語句
strCmdText="Insert Test Values('"+splitData[0].Trim()+"','"+splitData[1].Trim()+"','"+splitData[2].Trim()+"',"+splitData[3].Trim()+","+splitData[4].Trim()+")";
SqlCommand SqlCmd=new SqlCommand(strCmdText,conn);
SqlCmd.ExecuteNonQuery();
}
while(true);

conn.Close();
TxtReader.Close();
}
catch
{
//Response.Write("<script language='javascript'>alert('Upload file format error ')</script>");
}
finally
{
if (conn.State.ToString()=="Open")
conn.Close();
if (TxtReader != null)
TxtReader.Close();
}

}
liaoxiaohua1981 2006-04-21
  • 打赏
  • 举报
回复
还是没懂!谁能给点源码吗?
viena 2006-04-21
  • 打赏
  • 举报
回复
用sr.ReadToEnd()一次读到一个字符串str
再用回车换行符分割每一行
再用'\t'分割
viena 2006-04-21
  • 打赏
  • 举报
回复
不好意思,没看见,还以为是空格,TAB键也是一样的
liaoxiaohua1981 2006-04-21
  • 打赏
  • 举报
回复
但是编绎错误!
liaoxiaohua1981 2006-04-21
  • 打赏
  • 举报
回复

FileStream fs =new FileStream("c:\a.txt",FileMode.Open);
StreamReader sr=new StreamReader(fs);
string lingtext=sr.ReadLine();
string [] s2=null;
while(lingtext!=null)
{
s2=lingtext.Split("");
SqlCommand sqlcmd = new SqlCommand("insert into table values("+s2[0]+","+s2[1]+","+s2[2]+","+s2[3]+","+s2[4]+")",conn);
sqlcmd.Executenoquery();
}
conn.Close();
duguguiyu1984 2006-04-21
  • 打赏
  • 举报
回复
晕。。错了
string.split('\t')
string是你想分割的字串
viena 2006-04-21
  • 打赏
  • 举报
回复
一行一行读很慢,最好一次读取到字符串,再用"\r\n"分割

循环把两个空格替换为一个,直到只剩一个空格,再.split,以空格分割
duguguiyu1984 2006-04-21
  • 打赏
  • 举报
回复
string.spilit("\t")
liaoxiaohua1981 2006-04-21
  • 打赏
  • 举报
回复
用StreamReader读取,然后一行一行读取插入?
我用的是
FileStream aFile=new FileStream("c:\data.txt",FileMode.Open);
StreamReader sr=new StreamReader(aFile);
string lingtext=sr.ReadLine();
//lingtext=sr.ReadLine();
可我怎么把每行的数据分开来?
孟子E章 2006-04-21
  • 打赏
  • 举报
回复
也可以
http://www.codeproject.com/aspnet/ImportExportCSV.asp
孟子E章 2006-04-21
  • 打赏
  • 举报
回复
http://blog.csdn.net/net_lover/archive/2005/06/13/393579.aspx
孟子E章 2006-04-21
  • 打赏
  • 举报
回复
办法1:
你可以用StreamReader读取,然后一行一行读取插入

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧