數據庫表的結構必須有以下字段:
各個字段的說明:
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)//添加類別