file.aspx.cs

来自「asp做的新闻系统」· CS 代码 · 共 312 行

CS
312
字号
using System;
using System.IO;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Web.SysAdmin
{
	public class File : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.ImageButton BtnQuery;
		protected System.Web.UI.WebControls.Label LabRowCount;
		protected System.Web.UI.WebControls.Label LabRowID;
		protected System.Web.UI.WebControls.Label LabID;
		
		private DataSet OleDs;
		private Web.Common.Common Cmon = new Common.Common();
		private Web.DataAccess.DataAccess Das = new DataAccess.DataAccess();

		protected System.Web.UI.WebControls.TextBox TxtState;
		protected System.Web.UI.WebControls.ImageButton IbtQuery;
		protected System.Web.UI.WebControls.Panel PalArticle;
		protected System.Web.UI.WebControls.Button BtnAdd;
		protected System.Web.UI.WebControls.Button BtnDel;
		protected System.Web.UI.WebControls.Button BtnSave;
		protected System.Web.UI.WebControls.Button BtnCancel;
		protected System.Web.UI.HtmlControls.HtmlTable Table1;
		protected System.Web.UI.WebControls.DataGrid GrdFile;
		protected System.Web.UI.WebControls.Panel PalView;
		protected System.Web.UI.HtmlControls.HtmlTable Table4;
		protected System.Web.UI.HtmlControls.HtmlInputText TxtFileName;
		protected System.Web.UI.HtmlControls.HtmlInputFile UploadFile;
				
		const int nGrdRows = 10;
		
		private void Page_Load(object sender, System.EventArgs e)
		{
			if(!Page.IsPostBack)
			{ 
				BindGrdFile();
				TxtState.Text = "0";

				PageInit();
			}

			GrdFile.Attributes.Add("onclick","javascript:Click('GrdFile');");
			GrdFile.Attributes.Add("ondblclick","javascript:DbClick('GrdFile');");
			BtnSave.Attributes.Add("OnClick","javascript:return CheckInput();");
			BtnDel.Attributes.Add("OnClick","javascript:return Del('GrdFile');");
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.BtnAdd.Click += new System.EventHandler(this.BtnAdd_Click);
			this.BtnDel.Click += new System.EventHandler(this.BtnDel_Click);
			this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
			this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
			this.GrdFile.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.GrdFile_PageIndexChanged);
			this.GrdFile.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.GrdFile_SortCommand);
			this.ID = "Form1";
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		
		//初始化页面控件状态
		//LabState:操作状态,0--查询,1--浏览,2--增加,3--修改,4--删除
		private void PageInit()
		{
			int nState = int.Parse(TxtState.Text);

			PalView.Visible = (nState != 0) ? true:false;
			PalArticle.Visible = (nState == 0) ? true:false;

			BtnAdd.Enabled = (nState == 0 || nState == 1) ? true:false;
			BtnDel.Enabled = (nState == 0 || nState == 1) ? true:false;
			BtnSave.Enabled = (nState == 2 || nState == 3) ? true:false;
			BtnCancel.Enabled = (nState == 1 || nState == 2 || nState == 3) ? true:false;

		}
		
		//刷新GrdFile
		private void BindGrdFile()
		{

			OleDs = new DataSet();

			OleDs=Das.GetDataSet("select id,filename,ContentType,datetime from uploadfile");
			GrdFile.DataSource=OleDs;
			
			int nPage=0;
			nPage = GrdFile.CurrentPageIndex;
			GrdFile.CurrentPageIndex =0;
			GrdFile.DataBind();

			if ((nPage >= GrdFile.PageCount) && (GrdFile.PageCount > 0))
			{
				nPage = GrdFile.PageCount - 1;
			}
			
			LabRowCount.Text=OleDs.Tables[0].Rows.Count.ToString();

			GrdFile.CurrentPageIndex = nPage;
			GrdFile.DataBind();
		}

		private void BtnAdd_Click(object sender, System.EventArgs e)
		{
			TxtState.Text = "2";
			PageInit();
			Clear();
		}

		private void Clear()
		{
			TxtFileName.Value = "";
		}

		private void BtnCancel_Click(object sender, System.EventArgs e)
		{
			TxtState.Text = "0";
			PageInit();
			Clear();
		}

		//保存信息
		private void BtnSave_Click(object sender, System.EventArgs e)
		{
			Stream imgStream;
			int imgLen;
			string imgName_value;
			string imgContentType;
			string imgUploadedName;

			imgStream  = UploadFile.PostedFile.InputStream;
			imgLen =  UploadFile.PostedFile.ContentLength;
			imgUploadedName = UploadFile.PostedFile.FileName;
			byte[] imgBinaryData=new byte[imgLen];
			imgContentType = UploadFile.PostedFile.ContentType;
			imgName_value = TxtFileName.Value;

			try
			{
				if(imgName_value.Length < 1)
				{
					imgName_value = GetLastRightOf("\\",imgUploadedName );
				}
			}
			catch(Exception myEx)
			{
				Response.Write("<script language='javascript'>alert('错误!');</script>");
			}

			int n = imgStream.Read(imgBinaryData, 0, imgLen);          
			int NumRowsAffected = MyDatabaseMethod(imgName_value, imgBinaryData, imgContentType);
			if(NumRowsAffected > 0)
			{
				Response.Write("<script language='javascript'>alert('文件上传成功!');</script>");
				BindGrdFile();
			}
			else
				Response.Write ("<script language='javascript'>alert('文件上传不成功,请重新上传!');</script>");
		}
		
		public string GetLastRightOf(string LookFor,string myString)
		{
			int StrPos;
			StrPos = myString.LastIndexOf(LookFor);
			return myString.Substring(StrPos + 1);
		}
		
		public int MyDatabaseMethod(string imgName,byte[] imgbin,string imgcontenttype)
		{
//			OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;user id=sa;password=;initial catalog=web;data source=localhost;Connect Timeout=30");
//			string SQL="INSERT INTO uploadfile (filename,data,contenttype,datetime) VALUES ( @img_name, @img_data,@img_contenttype,@datetime)";
//			OleDbCommand command=new OleDbCommand(SQL,conn);

//			command.Parameters.Add("@img_name", OleDbType.VarChar, 50).Value = imgName;
//			command.Parameters.Add("@img_data", OleDbType.Binary).Value = imgbin;
//			command.Parameters.Add("@img_contenttype", OleDbType.VarChar,50).Value = imgcontenttype;
//			command.Parameters.Add("@datetime", OleDbType.Date).Value = DateTime.Now;

			SqlConnection conn = new SqlConnection("user id=sa;password=;initial catalog=web;data source=localhost;Connect Timeout=30");
			string SQL="INSERT INTO uploadfile (filename,data,contenttype,datetime) VALUES ( @img_name, @img_data,@img_contenttype,@datetime)";
			SqlCommand command=new SqlCommand ( SQL,conn );
            
//			SqlParameter param0=new SqlParameter ( "@img_name", SqlDbType.VarChar,50 );
//			param0.Value = imgName;			
//			command.Parameters.Add( param0 );            
			command.Parameters.Add("@img_name", SqlDbType.VarChar, 50).Value = imgName;

			SqlParameter param1=new SqlParameter ( "@img_data", SqlDbType.Image );			
			param1.Value = imgbin;
			command.Parameters.Add( param1 );
            
			SqlParameter param2 =new SqlParameter ( "@img_contenttype", SqlDbType.VarChar,50 );
			param2.Value = imgcontenttype;
			command.Parameters.Add( param2 );

			SqlParameter param3 =new SqlParameter ( "@datetime",SqlDbType.DateTime);
			param3.Value = DateTime.Now;
			command.Parameters.Add( param3);

			conn.Open();
			int numRowsAffected = command.ExecuteNonQuery();
			conn.Close();
			return numRowsAffected;
		}

		//检查用户选择DataGrid中记录的总数,返回DG中单选的记录号,多选的记录号保存LabDeptID中。
		private int CheckCbx()
		{
			int nRow = -1;
			LabID.Text = "";
			for (int i = 0;i < GrdFile.Items.Count;i++)
			{
				CheckBox CbxTable = (CheckBox)GrdFile.Items[i].FindControl("CbxSelect");
				if(CbxTable.Checked == true)
				{
					if(LabID.Text == "")
					{
						LabID.Text = GrdFile.Items[i].Cells[4].Text.Trim();
						nRow = i;
					}
					else
					{
						LabID.Text = LabID.Text + "," + GrdFile.Items[i].Cells[4].Text.Trim();
					}
				}
			}
			return nRow;
		}

		//设置复选框状态。
		private void SetCbxState(int nRow,bool bState)
		{
			CheckBox CbxDept;
			CbxDept = (CheckBox)GrdFile.Items[nRow].FindControl("CbxSelect");
			CbxDept.Checked = bState;
		}

		//换页
		private void GrdFile_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
		{
			GrdFile.CurrentPageIndex = e.NewPageIndex;
			BindGrdFile();
		}

		//排序
		private void GrdFile_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
		{
			DataView dv = new DataView();
			BindGrdFile();
			dv.Table = OleDs.Tables[0];
			dv.Sort = e.SortExpression;
			GrdFile.DataSource = dv;
			GrdFile.DataBind();
			GrdFile.EditItemIndex = -1;
			GrdFile.SelectedIndex = 0;
		}

		//删除信息
		private void BtnDel_Click(object sender, System.EventArgs e)
		{
			int nRow = 0;
			string strTableID,strSql;

			nRow = CheckCbx();
			strTableID = LabID.Text.Trim();

			strSql = "delete from uploadfile where id in(" + strTableID + ")";

			if (Das.ExecSql(strSql))
			{
				Response.Write("<script>alert('删除成功!');</script>");
				Clear();
				BindGrdFile();
			}
			else
			{
				Response.Write("<script>alert('删除不成功,请稍后再试!');</script>");
				if(TxtState.Text=="1")
				{
					PageInit();
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?