天天看點

資料庫通路類(使用存儲過程的)

using system;

using system.data;

using system.configuration;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

using system.data.sqlclient;

public class database

{

//使用單件模式,隻能執行個體化一個對象,所有方法都是靜态方法;

private static database _instance;

public database()

}

public static database getinstance()

if(_instance==null)

_instance = new database();

return _instance;

//得到并傳回一個打開的資料庫連結。

public static sqlconnection returnconn()

string strconn = system.configuration.configurationmanager.appsettings["connectionstring"];

sqlconnection conn = new sqlconnection(strconn);

if (conn.state.equals(connectionstate.closed))

conn.open();

return conn;

//①将存儲過程轉換成sqlcommand;(存儲過程名,字段集合,資料庫連接配接)

public static sqlcommand createcmd(string procname, sqlparameter[] prams, sqlconnection conn)

sqlconnection sqlconn = conn;

if (sqlconn.state.equals(connectionstate.closed))

sqlconn.open();

sqlcommand cmd = new sqlcommand();

cmd.commandtype = commandtype.storedprocedure;

cmd.connection = sqlconn;

cmd.commandtext = procname;

if (prams != null)

foreach (sqlparameter parameter in prams)

if (parameter != null)

cmd.parameters.add(parameter);

return cmd;

//②将存儲過程轉換成sqlcommand;(存儲過程名,字段集合)

public static sqlcommand createcmd(string procname, sqlparameter[] prams)

sqlconnection conn = returnconn();

cmd.connection = conn;

//③将存儲過程轉換成sqlcommand;(存儲過程名,資料庫連接配接)

public static sqlcommand createcmd(string procname,sqlconnection conn)

//④将存儲過程轉換成sqlcommand;(存儲過程名)

public static sqlcommand createcmd(string procname)

//①執行存儲過程并傳回一個sqldatareader對象,(存儲過程名,字段集合)

public static sqldatareader runprocgetreader(string procname, sqlparameter[] prams)

sqlcommand cmd = createcmd(procname, prams);

sqldatareader dr = cmd.executereader(commandbehavior.closeconnection);

return dr;

//②執行存儲過程并傳回一個sqldatareader對象,(存儲過程名,字段集合,資料庫連接配接)

public static sqldatareader runprocgetreader(string procname, sqlparameter[] prams, sqlconnection conn)

sqlcommand cmd = createcmd(procname, prams,conn);

//③執行存儲過程并傳回一個sqldatareader對象,(存儲過程名,資料庫連接配接)

public static sqldatareader runprocgetreader(string procname, sqlconnection conn)

sqlcommand cmd = createcmd(procname,conn);

//④執行存儲過程并傳回一個sqldatareader對象,(存儲過程名)

public static sqldatareader runprocgetreader(string procname)

sqlcommand cmd = createcmd(procname);

//執行存儲過程并傳回一個datatable對象,(存儲過程名,字段集合,資料庫連接配接)

public static datatable runprocgettable(string procname, sqlparameter[] prams, sqlconnection conn)

sqlcommand cmd = createcmd(procname, prams, conn);

sqldataadapter dtr = new sqldataadapter();

dataset ds = new dataset();

dtr.selectcommand = cmd;

dtr.fill(ds);

datatable dt = ds.tables[0];

conn.close();

return dt;

//①直接執行存儲過程,傳回整形資料。(存儲過程名)

public static int runexecute(string procname)

int intresult = cmd.executenonquery();

return intresult;

//②直接執行存儲過程,傳回整形資料。(存儲過程名,字段集合)

public static int runexecute(string procname,sqlparameter[] prams)

sqlcommand cmd = createcmd(procname,prams,conn);

public static int runexecutescalar(string procname)

sqlcommand cmd = createcmd(procname, conn);

int intresult = convert.toint32(cmd.executescalar());

public static int runexecutescalar(string procname, sqlparameter[] prams)

int intresult =convert.toint32(cmd.executescalar());