如何用ASP.net中的FileUpload将txt内容写入数据库? 本帖最后由 speedfisman 于 2010-09-09 09:48:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 foreach(string s in File.ReadAllLines("")){ } 本帖最后由 net_lover 于 2010-09-09 10:14:49 编辑 protected void btnUpload_Click(object sender, EventArgs e) { //判断是否上传了文件 if (fileUpload.HasFile) { string savePath = Server.MapPath("~/upload/"); if(!System.IO.Directory.Exists(savePath)) { System.IO.Directory.CreateDirectory(savePath); } savePath = savePath + "\\" + fileUpload.FileName; fileUpload.SaveAs(savePath);//保存文件 foreach(string s in File.ReadAllLines(savePath)) { //操作数据库sqlhelper } } } 以下代码直接拷贝执行,。数据库、表自己创建。<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void btnUpload_Click( object sender, EventArgs e ) { if (FileUpload1.PostedFile.InputStream.Length < 1) { Msg.Text = "请选择文件。"; return; } string FileName = FileUpload1.FileName; if (FileName.ToLower().IndexOf(".txt") == -1) { Msg.Text = "请选择文本文件。"; return; } int FileLen = FileUpload1.PostedFile.ContentLength; byte[] input = new byte[FileLen]; System.IO.Stream UpLoadStream = FileUpload1.PostedFile.InputStream; UpLoadStream.Read(input, 0, FileLen); UpLoadStream.Position = 0; System.IO.StreamReader sr = new System.IO.StreamReader(UpLoadStream, System.Text.Encoding.Default); String content = sr.ReadToEnd(); sr.Close(); UpLoadStream.Close(); UpLoadStream = null; sr = null; String sql = "Inser INTO Table(name,Title) Values(@name,@Title) "; System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection("你的数据库连接字符串"); cn.Open(); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql,cn); String[] d = System.Text.RegularExpressions.Regex.Split(content, "\r\n"); for (int i = 0; i < d.Length; i++) { if (d[i].Trim() != "") { //Response.Write("<li>" + d[i]); cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@name", d[i]); cmd.Parameters.AddWithValue("@name", d[i]); cmd.ExecuteNonQuery(); } } }</script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>不经保存,直接读取上传文件的内容</title></head><body> <form id="MengXianhui" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click"></asp:Button> <p> <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p> </form></body></html>你要想干编程,就自己研究研究。http://dotnet.aspx.cc/article/78280914-a75c-40dc-9dac-322b3d81be35/read.aspx已经讲的很具体了 foreach(string s in File.ReadAllLines("")){}其实有这个就很足够了! ReadAllLines需要一个文件对象,服务器上没有的,你还得先Save吧,为啥还有Save一次呢?直接就能读取内容了 有没有win8 metro风格的第三方控件? 请教:高手请进 string 通信急求通信急求 正则表达的替换如何跟参数 简单的字符串截取,大家帮一下啦. 如何知道数组是否为空。 如何在datagrid中显示时间(如:8:20:12)及 不同条件的行显示不同颜色 web 应用程序2 select语句如何通过参数返回某个字段的值? C#串口通信小例子(使用serialPort) [winfrom]升级
{
}
{
//判断是否上传了文件
if (fileUpload.HasFile)
{
string savePath = Server.MapPath("~/upload/");
if(!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);//保存文件
foreach(string s in File.ReadAllLines(savePath))
{
//操作数据库sqlhelper
}
}
}
数据库、表自己创建。
<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void btnUpload_Click( object sender, EventArgs e )
{
if (FileUpload1.PostedFile.InputStream.Length < 1)
{
Msg.Text = "请选择文件。";
return;
}
string FileName = FileUpload1.FileName;
if (FileName.ToLower().IndexOf(".txt") == -1)
{
Msg.Text = "请选择文本文件。";
return;
}
int FileLen = FileUpload1.PostedFile.ContentLength;
byte[] input = new byte[FileLen];
System.IO.Stream UpLoadStream = FileUpload1.PostedFile.InputStream;
UpLoadStream.Read(input, 0, FileLen);
UpLoadStream.Position = 0;
System.IO.StreamReader sr = new System.IO.StreamReader(UpLoadStream, System.Text.Encoding.Default);
String content = sr.ReadToEnd();
sr.Close();
UpLoadStream.Close();
UpLoadStream = null;
sr = null; String sql = "Inser INTO Table(name,Title) Values(@name,@Title) ";
System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection("你的数据库连接字符串");
cn.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql,cn);
String[] d = System.Text.RegularExpressions.Regex.Split(content, "\r\n");
for (int i = 0; i < d.Length; i++)
{
if (d[i].Trim() != "")
{
//Response.Write("<li>" + d[i]);
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@name", d[i]);
cmd.Parameters.AddWithValue("@name", d[i]);
cmd.ExecuteNonQuery();
}
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>不经保存,直接读取上传文件的内容</title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click"></asp:Button>
<p>
<asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
</form>
</body>
</html>你要想干编程,就自己研究研究。
http://dotnet.aspx.cc/article/78280914-a75c-40dc-9dac-322b3d81be35/read.aspx
已经讲的很具体了
{}
其实有这个就很足够了!