欢迎光临
我们一直在努力

[ASP.net(C#)]自定义数据库操作类(一)-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

这两天写了个类。针对sql server和ole数据库所写的。源码如下:

\classes\dbcontrol.cs

==========================================================

using system;

using system.data;

using system.data.sqlclient;

using system.data.oledb;

namespace guestbook

{

/// <summary>

/// dbcontrol 的摘要描述。

/// </summary>

public class dbcontrol:classes.databasetype.dbopen

{

//類成員定義。

private int record_total = 0;

protected string dbtype,sql_select;

protected sqlconnection sqlconn;

protected oledbconnection oleconn;

protected sqlcommand sqlcmd;

protected oledbcommand olecmd;

protected dataset ds = new dataset();

public int recordtotal

{

get

{

switch (dbtype)

{

case "sql":

sqlcmd.cancel();

sqlcmd.commandtext = sql_select;

sqldatareader sqldr;

sqldr = sqlcmd.executereader();

while (sqldr.read())

{

record_total++;

}

sqldr.close();

break;

case "ole":

olecmd.cancel();

olecmd.commandtext = sql_select;

oledbdatareader oledr;

oledr = olecmd.executereader();

while (oledr.read())

{

record_total++;

}

oledr.close();

break;

}

return record_total;

}

}

public dbcontrol(string dbtype,string dbname)

{

//重載構造函數。

dbtype = dbtype.toupper();

switch (dbtype.toupper())

{

case "sql":

sqlconn = this.sqlconnect(dbname);

oleconn.close();

oleconn.dispose();

break;

case "ole":

oleconn = this.oleconnect(dbname);

oleconn.close();

oleconn.dispose();

break;

}

}

public dbcontrol():base()

{

//

// todo: 在這裡加入建構函式的程式碼

//

}

public void open(string dbtype,string dbname)

{

//數據庫文件打開。

dbtype = dbtype.toupper();

switch (dbtype.toupper())

{

case "sql":

sqlconn = this.sqlconnect(dbname);

break;

case "ole":

oleconn = this.oleconnect(dbname);

break;

}

}

public sqldatareader sqlgetreader(string strquery)

{

//返回一個sqldatareader。用於sql server

sql_select = strquery;

sqlcmd = new sqlcommand(strquery,sqlconn);

sqldatareader dr;

try

{

sqlcmd.connection.open();

}

catch (exception e)

{

throw e;

}

dr = sqlcmd.executereader();

return dr;

}

public oledbdatareader olegetreader(string strquery)

{

//返回一個oledbdatareader。用於oledb

sql_select = strquery;

olecmd = new oledbcommand(strquery,oleconn);

oledbdatareader dr;

try

{

olecmd.connection.open();

}

catch (exception e)

{

throw e;

}

dr = olecmd.executereader();

return dr;

}

public int sqlruncommand(string strquery)

{

//執行一條sql語句。包括記錄插入、更新、刪除。用於sql server

sql_select = strquery;

sqlcmd = new sqlcommand(strquery,sqlconn);

try

{

sqlcmd.connection.open();

}

catch (exception e)

{

throw e;

}

return sqlcmd.executenonquery();

}

public int oleruncommand(string strquery)

{

//執行一條sql語句。包括記錄插入、更新、刪除。用於oledb

sql_select = strquery;

olecmd = new oledbcommand(strquery,oleconn);

try

{

olecmd.connection.open();

}

catch (exception e)

{

throw e;

}

return olecmd.executenonquery();

}

public dataview sqlgetdataset(string strquery)

{

//返回一個dataset。用於sql server

sql_select = strquery;

sqlcmd = new sqlcommand(strquery,sqlconn);

try

{

sqlcmd.connection.open();

}

catch (exception e)

{

throw e;

}

sqldataadapter da = new sqldataadapter();

da.selectcommand = sqlcmd;

da.fill(ds,"defaulttable");

return ds.tables["defaulttable"].defaultview;

}

public dataview olegetdataset(string strquery)

{

//返回一個dataset。用於oledb

sql_select = strquery;

olecmd = new oledbcommand(strquery,oleconn);

try

{

olecmd.connection.open();

}

catch (exception e)

{

throw e;

}

oledbdataadapter da = new oledbdataadapter();

da.selectcommand = olecmd;

da.fill(ds,"defaulttable");

return ds.tables["defaulttable"].defaultview;

}

public void close()

{

//數據庫關閉。

switch (dbtype)

{

case "sql":

sqlcmd.cancel();

sqlcmd.dispose();

sqlconn.close();

sqlconn.dispose();

break;

case "ole":

olecmd.cancel();

olecmd.dispose();

oleconn.close();

oleconn.dispose();

break;

}

ds.clear();

ds.dispose();

}

}

}

============================================================

\classes\databasetype\dbopen.cs

============================================================

using system;

using system.data.sqlclient;

using system.data.oledb;

using system.configuration;

namespace guestbook.classes.databasetype

{

/// <summary>

/// dbopen 的摘要描述。

/// </summary>

public class dbopen

{

public dbopen()

{

//

// todo: 在這裡加入建構函式的程式碼

//

}

protected sqlconnection sqlconnect(string dbname)

{

sqlconnection conn = new sqlconnection(configurationsettings.appsettings[dbname]);

return conn;

}

protected oledbconnection oleconnect(string dbname)

{

oledbconnection conn = new oledbconnection(configurationsettings.appsettings[dbname]);

return conn;

}

}

}

==============================================================

类的调用方法:

==============================================================

dbcontrol objdbcontrol = new dbcontrol();

string sql = "select * from content";

objdbcontrol.open("sql","sqlconnection");

dglist.datasource = objdbcontrol.sqlgetdataset(sql);

inttotal = objdbcontrol.recordtotal;

dglist.databind();

objdbcontrol.close();

==============================================================

其中“inttotal = objdbcontrol.recordtotal;”即返回记录总数。

可以把它插入到datagrid中。如:

==============================================================

private void dglist_itemcreated(object sender, system.web.ui.webcontrols.datagriditemeventargs e)

{

if (e.item.itemtype == listitemtype.pager)

{

system.text.stringbuilder pagerstring = new system.text.stringbuilder();

pagerstring.append("總計" + inttotal.tostring() + " 共" + dglist.pagecount + "頁 每頁" + dglist.pagesize + "筆");

e.item.cells[0].controls.addat(0,new literalcontrol(pagerstring.tostring())) ;

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » [ASP.net(C#)]自定义数据库操作类(一)-.NET教程,Asp.Net开发
分享到: 更多 (0)

相关推荐

  • 暂无文章