您的位置:首页 > 数据库

如何利用一个FILE控件,一次上传多个附件到数据库

2003-07-03 14:04 686 查看
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Configuration;

namespace bjoffice
{
/// <summary>
/// upfiles 的摘要说明。
/// </summary>
public class upfiles : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.DropDownList files;
protected System.Web.UI.HtmlControls.HtmlInputFile myFile;
protected System.Web.UI.WebControls.Button Button3;
protected static DataTable upfiles1;
protected static SqlDataAdapter upfiles2;

public void CreatTable()
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter myCommand = new SqlDataAdapter("select FileName,FileType,FileLen,FileData,[ID] from Accessories where [ID]<-1", myConnection);
DataSet mydataset = new DataSet();
myCommand.Fill(mydataset, "Accessoriestable");
upfiles2 = myCommand;
upfiles1 = mydataset.Tables["Accessoriestable"];
}

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Button3.Click += new System.EventHandler(this.Button3_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
if (upfiles1 == null)
{
CreatTable();
}
if( myFile.PostedFile.FileName != "" )
{
string filename1 = Path.GetFileName(myFile.PostedFile.FileName) ;
//if(upfiles1.Rows.Find(filename)==null)
DataRow[] myrow=upfiles1.Select("FileName='"+filename1.ToString()+"'");
if(myrow.Length ==0)
{
int filelen = myFile.PostedFile.ContentLength;
string filetype = myFile.PostedFile.ContentType;
Stream fstream = myFile.PostedFile.InputStream;
byte[] filedata = new byte[filelen];
fstream.Read(filedata,0,filelen);

DataRow dr = upfiles1.NewRow();
dr[0] = filename1;
dr[1] = filetype;
dr[2] = filelen;
dr[3] = filedata;
upfiles1.Rows.Add( dr );
files.DataSource = upfiles1;
files.DataBind();

}
}
else
{
Page.RegisterStartupScript("script", "<script>alert('请选择文件!');</script>");
}

}

private void Button2_Click(object sender, System.EventArgs e)
{
if(files.SelectedIndex>=0)
{
string fname=files.SelectedItem.Text;
DataRow[] myrow=upfiles1.Select("FileName='"+fname+"'");
if(myrow.Length>0)
upfiles1.Rows.Remove(myrow[0]);
files.DataSource=upfiles1;
files.DataBind();
}
else
{
Page.RegisterStartupScript("script", "<script>alert('请选择文件!');</script>");
}

}

private void Button3_Click(object sender, System.EventArgs e)
{
if( upfiles1.Rows.Count > 0 )
{
SqlCommandBuilder myscb =new SqlCommandBuilder(upfiles2);
upfiles2.InsertCommand=myscb.GetInsertCommand();
upfiles2.Update(upfiles1);
}
upfiles1 = null;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐