⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disk.cs

📁 ASP.NET网络编程从入门到精通书的源代码资料
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public interface IDisk
{
	/// <summary>
	/// 目录的接口设计
	/// </summary>
	SqlDataReader GetAllDirectoryFile();
	/// <summary>
	/// 获取子目录和文件信息
	/// </summary>
	/// <param name="nParentID"></param>
	/// <returns></returns> 
	SqlDataReader GetDirectoryFile(int nParentID);
	/// <summary>
	/// 获取所有目录信息
	/// </summary>
	/// <returns></returns>
	SqlDataReader GetDirectorys();

	/// <summary>
	/// 获取子目录信息
	/// </summary>
	/// <param name="nParentID"></param>
	/// <returns></returns> 
	SqlDataReader GetDirectory(int nParentID);
	/// <summary>
	/// 获取单个目录信息
	/// </summary>
	/// <param name="nDirID"></param>
	/// <returns></returns>
	SqlDataReader GetSingleDirectory(int nDirID);
	/// <summary>
	/// 新建一个目录
	/// </summary>
	/// <param name="sName"></param>
	/// <param name="nParentID"></param>
	/// <returns></returns>
	int AddDirectory(string sName,int nParentID);
	/// <summary>
	/// 重命名目录
	/// </summary>
	/// <param name="nDirID"></param>
	/// <param name="sName"></param>
	/// <returns></returns>
	int EditDirectory(int nDirID,string sName);
	/// <summary>
	/// 删除一个目录
	/// </summary>
	/// <param name="nDirID"></param>
	/// <returns></returns>
	int DeleteDirectory(int nDirID);
	/// <summary>
	/// 移动一个目录
	/// </summary>
	/// <param name="nDirID"></param>
	/// <param name="nParentID"></param>
	/// <returns></returns>
	int MoveDirectory(int nDirID,int nParentID);

	/// <summary>
	/// 获取所有文件
	/// </summary>
	/// <returns></returns>
	SqlDataReader GetFiles();
	/// <summary>
	/// 获取给定目录下的所有文件
	/// </summary>
	/// <param name="nParentID"></param>
	/// <returns></returns>
	SqlDataReader GetFile(int nParentID);
	/// <summary>
	/// 获取单个文件
	/// </summary>
	/// <param name="nFileID"></param>
	/// <returns></returns>
	SqlDataReader GetSingleFile(int nFileID);
	/// <summary>
	/// 上载一个文件
	/// </summary>
	/// <param name="sName"></param>
	/// <param name="nParentID"></param>
	/// <param name="nContain"></param>
	/// <param name="sUrl"></param>
	/// <param name="sType"></param>
	/// <returns></returns>
	int AddFile(string sName,int nParentID,int nContain,string sUrl,string sType);
	/// <summary>
	/// 修改文件的名称
	/// </summary>
	/// <param name="nFileID"></param>
	/// <param name="sName"></param>
	/// <returns></returns>
	int EditFile(int nFileID,string sName);
	/// <summary>
	/// 删除一个文件
	/// </summary>
	/// <param name="nFileID"></param>
	/// <returns></returns>
	int DeleteFile(int nFileID);
	/// <summary>
	/// 移动文件
	/// </summary>
	/// <param name="nFileID"></param>
	/// <param name="nParentID"></param>
	/// <returns></returns>
	int MoveFile(int nFileID,int nParentID);

	/// <summary>
	/// 搜索文件
	/// </summary>
	/// <param name="sKey"></param>
	/// <returns></returns>
	SqlDataReader SearchFiles(string sKey);
}

/// <summary>
/// Disk 的摘要说明
/// </summary>
public class Disk : IDisk
{
	public void ShowDirectory(DropDownList dirList,int nParentID)
	{
		DataTable dataTable = SystemTools.ConvertDataReaderToDataTable(GetDirectorys());
		dirList.Items.Clear();     ///清空所有节点

		DataRow[] rowList = dataTable.Select("ParentID='-1'");
		if(rowList.Length <= 0) return;

		///创建、添加根节点
		dirList.Items.Add(new ListItem("/",rowList[0]["DirID"].ToString()));

		///创建其他节点
		CreateChildNode(dirList,dataTable,Int32.Parse(rowList[0]["DirID"].ToString()),"/");
	}

	private void CreateChildNode(DropDownList dirList,DataTable dataTable,int nParentID,string sParentName)
	{		
		///选择数据时,添加了排序表达式OrderBy
		DataRow[] rowList = dataTable.Select("ParentID='" + nParentID.ToString() + "'","CreateDate DESC");
		foreach(DataRow row in rowList)
		{
			string sName = sParentName + row["Name"].ToString() + "/";
			///创建新节点
			dirList.Items.Add(new ListItem(sName,row["DirID"].ToString()));

			///递归调用,创建其他节点
			CreateChildNode(dirList,dataTable,Int32.Parse(row["DirID"].ToString()),sName);
		}
	}

	#region IDisk 成员
	public SqlDataReader GetAllDirectoryFile()
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "SELECT * FROM Directory";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public SqlDataReader GetDirectorys()
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "SELECT * FROM Directory WHERE Flag='1'";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public SqlDataReader GetFiles()
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "SELECT * FROM Directory WHERE Flag='0'";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public SqlDataReader GetDirectoryFile(int nParentID)
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "SELECT Directory.*,Url.Url,Url.Type "
			+ "FROM Directory Left JOIN Url ON Directory.DirID = Url.DirID "
			+  "WHERE ParentID='" + nParentID.ToString() + "'";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public SqlDataReader GetDirectory(int nParentID)
	{		
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
		
		///定义SQL语句
		string cmdText = "SELECT * FROM Directory WHERE Flag='1' AND ParentID='" + nParentID.ToString() + "'";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public SqlDataReader GetSingleDirectory(int nDirID)
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "SELECT * FROM Directory WHERE DirID='" + nDirID.ToString() + "'";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义DataReader
		SqlDataReader dr = null;
		try
		{
			///打开链接
			myConnection.Open();
			///读取数据
			dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		///返回DataReader
		return dr;
	}

	public int AddDirectory(string sName,int nParentID)
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "INSERT INTO Directory (Name,ParentID,Contain,DirCount,FileCount,Flag,CreateDate)VALUES("
			+ "'" + sName + "',"
			+ "'" + nParentID.ToString() + "',"
			+ "'0" + "',"
			+ "'0" + "',"
			+ "'0" + "',"
			+ "'1" + "',"
			+ "GetDate()"
			+ ")";
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

		///定义返回值
		int nResult = -1;

		try
		{
			///打开链接
			myConnection.Open();
			///执行SQL语句
			nResult = myCommand.ExecuteNonQuery();
			///修改目录的数量
			cmdText = "UPDATE Directory SET DirCount = DirCount + 1 WHERE DirID='" + nParentID.ToString() + "'";
			myCommand.CommandText = cmdText;
			nResult = myCommand.ExecuteNonQuery();
		}
		catch(SqlException ex)
		{
			///抛出异常
			throw new Exception(ex.Message,ex);
		}
		finally
		{   ///关闭链接
			myConnection.Close();
		}
		///返回nResult
		return nResult;
	}

	public int EditDirectory(int nDirID,string sName)
	{
		///创建链接
		SqlConnection myConnection = new SqlConnection(
			ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);

		///定义SQL语句
		string cmdText = "UPDATE Directory SET Name ="
			+ "'" + sName + "'"
			+ " WHERE DirID='" + nDirID.ToString() + "'";			
		///创建Command
		SqlCommand myCommand = new SqlCommand(cmdText,myConnection);

⌨️ 快捷键说明

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