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

数据库表的结构必须有以下字段:  
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://ent.omeweb.com/book/admin/arti_ad/eWebEditor/UploadFile/200612278462542.gif');}" alt="" src="http://ent.omeweb.com/book/admin/arti_ad/eWebEditor/UploadFile/200612278462542.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>
各个字段的说明:
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://ent.omeweb.com/book/admin/arti_ad/eWebEditor/UploadFile/200612278595784.gif');}" alt="" src="http://ent.omeweb.com/book/admin/arti_ad/eWebEditor/UploadFile/200612278595784.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=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)//添加类别

当前1/3页 123下一页阅读全文

(0)

相关推荐

  • C#TreeView 无限级别分类实现方法

    做分类 经常会用到无限级别的分类  先介绍一下数据库的表结构 tid  类别编号 tname 类别名称 pid 父类编号 测试数据就不写了,大家可以自己插入一下试试 查询制定类别的 所有的子类   sql 的 代码 复制代码 代码如下: alter proc  proc_chaxun(@tid int )asbegin with tt  as     ( select tid,tname,pid from dbo.t_goodsType where tid=@tid        union a

  • C#无限参数的写法

    本文实例讲述了C#无限参数的写法.分享给大家供大家参考.具体实现方法如下: 声明了list<class> paras,添加每一个para,都需要写paras.Add(para),如果能写成paras.Add(para1,para2,...)那就好了 查了一下资料,C#的无限参数关键词是params,List<Class>可以用泛型来代替,再写List<T>的扩展方法 复制代码 代码如下: public static void AddParas<T>(this

  • C#引用类型作为方法的参数分析

    本文实例分析了C#引用类型作为方法的参数.分享给大家供大家参考.具体如下: 在c#或java中,参数传递都是传递的参数本身的值, 对于值类型,传递的是值本身. 对于引用类型,定义引用类型变量的时候,一个是在栈中的变量,存储的是一个指针,指向在堆中分配的对象实例的地址,当然,如果对象没有实例化,给null值的时候例外. 传递引用类型变量的时候,传递的也是值, 但它的值是内存地址,地址指定堆中的对象. 所以当我们在方法中改变对象内容的时候,我们外围 的引用类型变量操作的对象也发生了变化,因为他们指向

  • C# 无限级分类的实现

    数据库表:CategoryInfo 字段名 类型 ciID int //记录序号,自增量 ciName nvarchar(20) //分类名 ciParent int //父分类序号 ciLayer int //所处的层次 ciDescription nvarchar(200) //对分类的描述 分类的类设计 public class CategoryInfo { private int ciID;//分类ID private string ciName;//分类名 private int ci

  • asp.net(C#)生成无限级别菜单

    首先,创建数据库表的代码如下: 无限级树的数据库表代码 复制代码 代码如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[work_sysmenu]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[work_sysmenu] GO CREATE TABLE [dbo].[work_sysmenu] ( [flowid] [

  • c#的params参数使用示例

    复制代码 代码如下: class 参数    {        public void doSome(string str,params int[] values){            if (values != null && values.Length > 0)            {                for (var i = 0; i < values.Length; i++)                {                    C

  • 解析C#中的ref和out参数

    很多初学者(甚至是工作一定时间的开发人员),在遇到ref或者out参数时,总会有点"晕乎乎"或者疑惑,也不知道到底该在啥时候,啥场景下使用ref或者out参数. 本文将通过实例和说明,给大家详细讲解C#中的ref和out参数. 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace RefAndOut{    class Program

  • c#委托把方法当成参数(实例讲解)

    静态方法代理: 复制代码 代码如下: public delegate void DoGreeting(string name); class Program    {        [STAThread]        static void Main(string[] args)        {            //方法名当成参数传给委托类型调用            MarkGreeting("张三", GreetingEnglish);            MarkGr

  • C#传递参数到线程的方法汇总

    本文汇总整理了传递参数到线程的方法供大家参考,非常实用,具体内容如下: 首先我们要知道什么是线程,什么时候要用到线程,如何去使用线程,如何更好的利用线程来完成工作. 线程是程序可执行片段的最小单元,是组成运行时程序的基本单元,一个进程有至少一个线程组成.一般在并行处理等待事件的时候要用到线程,如等待网络响应,等待I/O通讯,后台事务处理等情况.使用线程其实很简单,在.net框架下面你首先要定义一个函数来完成一些工作,然后实例化一个线程对象Thread thrd = new Thread(new

  • C#中参数个数可变的方法实例分析

    本文实例讲述了C#中参数个数可变的方法.分享给大家供大家参考.具体方法如下: 要实现C#中参数个数可变关键是使用params关键字.并且,可变参数只能是所有参数中的最后一个. 简单示例一下即可: 复制代码 代码如下: void ParamsExample(params string[] sz) { } void ParamsExample2(int i,string str,params string[] sz) { } void Main() {    ParamsExample("aa&qu

随机推荐