数据库表的结构必须有以下字段:
 各个字段的说明:
 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)//添加类别
|
|