C#无限栏目分级程序代码分享 好东西第1/3页

所属分类: 软件编程 / C#教程 阅读数: 144
收藏 0 赞 0 分享
数据库表的结构必须有以下字段:  

各个字段的说明:

3,本示例核心为idb.cs,db.cs和action.cs,分别说明下作用
idb.cs:数据库操作类的接口,代码如下: using System;
using System.Data;

namespace catalog
{
/// <summary>
/// idb 的摘要说明。
/// </summary>
interface idb
{
  //
  //void open();构造函数当然不能在接口里声明

  System.Data.IDbConnection getcon
  {
   get;
   //set;
  }

  string constr
  {
   get;
  }

  System.Data.IDbCommand command(string sql);

  int exesql(string sql);

  object getvalue(string sql);

  void close();

  DataTable getdata(string sql);

  System.Data.IDataReader getdr(string sql);
}
}





db.cs实例这个接口: using System;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Configuration;
//using System.Web;

namespace catalog
{
/// <summary>
/// db 的摘要说明。
/// </summary>
public class db:idb
{
  private IDbConnection con;
  private IDbCommand cm;
  private string dbtype="access";

  public db()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
   dbtype=ConfigurationSettings.AppSettings["dbtype"];
   if (dbtype==null)
    dbtype="";
   if (dbtype.ToLower()=="sqlserver")
   {
    con=new SqlConnection();
    cm= new SqlCommand();
   }
   else
   {
    con=new OleDbConnection();
    cm= new OleDbCommand();
   }

   string cnstring=ConfigurationSettings.AppSettings["cnstr"];
   con.ConnectionString=cnstring;

   open();
   cm.Connection=con;
  }

  public db(string constr)
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
   dbtype=ConfigurationSettings.AppSettings["dbtype"];
   if (dbtype==null)
    dbtype="";
   if (dbtype.ToLower()=="sqlserver")
   {
    con=new SqlConnection();
    cm= new SqlCommand();
   }
   else
   {
    con=new OleDbConnection();
    cm= new OleDbCommand();
   }

   con.ConnectionString=constr;
   open();
   cm.Connection=con;
  }

  private void open()
  {
   con.Open();
  }

  public System.Data.IDbConnection getcon
  {
   get{return con;}
   //set{};
  }

  public int exesql(string sql)
  {
   cm.CommandText=sql;
   return cm.ExecuteNonQuery();
  }

  public object getvalue(string sql)
  {
   cm.CommandText=sql;
   //return cm.ExecuteScalar();
   object o=cm.ExecuteScalar();
   return o;
  }

  public void close()
  {
   cm.Dispose();
   con.Close();
   con.Dispose();
   con=null;
  }

  public DataTable getdata(string sql)
  {
   DataTable dt=new DataTable();
   if (dbtype.ToLower()=="sqlserver")
   {
    SqlDataAdapter adapter = new SqlDataAdapter();
    cm.CommandText=sql;
    adapter.SelectCommand=(SqlCommand)cm;
    adapter.Fill(dt);
   }
   else
   {
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    cm.CommandText=sql;
    adapter.SelectCommand=(OleDbCommand)cm;
    adapter.Fill(dt);
   }
   return dt;
  }

  public IDataReader getdr(string sql)
  {
   cm.CommandText=sql;
   return cm.ExecuteReader();

  }

  public string constr
  {
   get{return ConfigurationSettings.AppSettings["cnstr"];}
  }

  public System.Data.IDbCommand command(string sql)
  {
   cm.CommandText=sql;
   return cm;
  }
}
}
C#无限栏目分级程序代码分享[2] 核心类说明

本程序采用C#为脚本编写,同时支持ACCESS/SQL SERVER数据库。 
本程序功能:栏目无限分级,栏目的移动,添加,排序,删除(栏目树),操作方便,部署、使用更为简单,提供统一的接口程序。 
本程序才开发完毕,难免有错误或者BUG,欢迎提出,不甚感激。 

核心类文件方法调用说明 
public void deleteAllCatalog(string table) //清空栏目表 
public int downClass(string table,int classid) //栏目向下移动一位 
public int upClass(string table,int classid)//栏目向上移动一位 
public int moveClass(string table,int classid,int target)//栏目的移动 
public int deleteTree(string table,int classid)//删除栏目树 
public DataTable list(string table)//用于列出栏目列表 
public int getClassidOrderNum(string table,int classid)//得到栏目的排序ID 
public bool checkExist(string table,int classid)//检查栏目是否存在 
public string getChildren(string table,int classid)//列出一个栏目所有的子栏目 
public int modiClass(string table,int classid,string classname)//修改栏目 
public string classMap(string table,int classid)//栏目导航,地图 
public string getClassName(string table,int classid)//得到栏目名称 
public int reset(string table)//重新置位全部类别为一级栏目 
public int deleteClass(string table,int classid)//删除栏目 
public static void itemcreated(Object Sender, System.Web.UI.WebControls.RepeaterItemEventArgs e,string ctlname,string ctlname2)//列栏目的时候的repeater的事件 
public static string getOptions(string table,int type,int selected)//用于select的options 
public object addClass(string table,string classname,int parentid)//添加类别
更多精彩内容其他人还在看

C# 大小写转换(金额)实例代码

C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
收藏 0 赞 0 分享

C#访问应用程序配置文件的方法

C#访问应用程序配置文件的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#读写文件的方法汇总

C#读写文件的方法汇总,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#计算代码执行时间的方法

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
收藏 0 赞 0 分享

C# 动画窗体(AnimateWindow)的小例子

C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# zxing二维码写入的实例代码

C# zxing二维码写入的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

c#判断输入的是不是数字的小例子

c#判断输入的是不是数字的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

c# 深拷贝与浅拷贝的区别分析及实例

浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
收藏 0 赞 0 分享

C#利用com操作excel释放进程的解决方法

最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
收藏 0 赞 0 分享
查看更多