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());