File导入问题
我在同一页面连续用两个File,分别上传两个不同的字段到数据库。该怎么写啊?
问题补充:(就是两个File浏览好文件后,通过一个 导入 按纽将浏览的文件里的内容作为字段导入到数据库)
[解决办法]
两个excel文件的导入和一个excel文件的导入没有多大区别啊,你导入数据库是用了哪种方式?
[解决办法]
- HTML code
<%@ Page Language="C#" EnableViewState="true" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
protected void Button1_Click( object sender, EventArgs e )
{
System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;
if (fileDataStream.Length < 1)
{
Msg.Text = "请选择文件。";
return;
}
//得到文件大小
int fileLength = FileUpload1.PostedFile.ContentLength;
//创建数组
byte[] fileData = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData, 0, fileLength);
//得到文件类型
string fileType = FileUpload1.PostedFile.ContentType;
//构建数据库连接,SQL语句,创建参数
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" +
"VALUES (@UserName,@ContentType,@Photo)", myConnection);
command.Parameters.AddWithValue("@UserName", TextBox1.Text);
command.Parameters.AddWithValue("@ContentType", fileType);
command.Parameters.AddWithValue("@Photo", fileData);
//打开连接,执行查询
myConnection.Open();
command.ExecuteNonQuery();
myConnection.Close();
Response.Redirect(Request.RawUrl);
}
protected void Page_Load( object sender, EventArgs e )
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
private void BindGrid( )
{
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection);
try
{
myConnection.Open();
GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
GridView1.DataBind();
}
catch (Exception SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL( object strArgument )
{
return "ReadImage.aspx?id=" + strArgument.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>上传文件到数据库 </title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("UserName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img src=" <%#FormatURL(Eval("id")) %>" /> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
姓名: <asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox>
<br />
照片: <asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"> </asp:Button>
<p>
<asp:Label ID="Msg" runat="server" ForeColor="Red"> </asp:Label> </p>
</form>
</body>
</html>
[解决办法]
先把内容写进一个STRING 对象中,然后把这个对象的值写进数据库中就行了.
其实就是文件的读取和数据库的存操作,比较简单的.
[解决办法]
学习
[解决办法]
希望楼主能得到启发...
来个多文件的.
- C# code
for(int i=0;i<Request.Files.Count;i++) { if(Request.Files[i].ContentLength >0) { string filename = System.IO.Path.GetFileName(Request.Files[i].FileName); Request.Files[i].SaveAs(Server.MapPath(filename)); //......... } }