利用數(shù)據(jù)集實現(xiàn)對數(shù)據(jù)庫的操作
2024-07-21 02:22:51
供稿:網(wǎng)友
注冊會員,創(chuàng)建你的web開發(fā)資料庫,/// <summary>
/// 說明: 本類主要實現(xiàn)對數(shù)據(jù)庫的操作(查詢|sp)
/// 建立者: 黃宗銀
/// 建立時間: 2004-12-4
/// </summary>
public class db
{
/// <summary>
/// 從數(shù)據(jù)庫查詢數(shù)據(jù)
/// </summary>
/// <param name="columns">查詢列名</param>
/// <param name="target">查詢目標(biāo)</param>
/// <param name="pkcolumn">主鍵列名</param>
/// <param name="pkvalue">主鍵值</param>
/// <param name="q">是否加引號</param>
/// <param name="strex">異常信息</param>
/// <returns>返回查詢結(jié)果</returns>
public static dataview getdbdata( string columns, string target, string pkcolumn, string pkvalue, bool q, ref string strex )
{
string strcondition = "[" + pkcolumn + "] = ";
if( q )
{
strcondition += "'" + pkvalue + "'";
}
else
{
strcondition += pkvalue;
}
dataset ds = getdbdata( columns, target, strcondition, ref strex );
if( strex != string.empty )
{
return null;
}
return ds.tables[0].defaultview;
}
/// <summary>
/// 從數(shù)據(jù)庫查詢數(shù)據(jù)
/// </summary>
/// <param name="columns">查詢列名</param>
/// <param name="target">查詢目標(biāo)</param>
/// <param name="condition">查詢條件</param>
/// <param name="strex">異常信息</param>
/// <returns>查詢結(jié)果</returns>
public static dataset getdbdata( string columns, string target, string condition, ref string strex )
{
strex = string.empty;
string strconnect = configurationsettings.appsettings["connectstring"];
sqlconnection sqlconnection = new sqlconnection( strconnect );
try
{
string strquery = "select " + columns + "from [" + target + "]";
if( condition.trim() != string.empty )
{
strquery += "where [" + condition;
}
sqldataadapter sqldataadapter = new sqldataadapter( strquery, sqlconnection );
dataset ds = new dataset();
sqldataadapter.fill( ds );
sqlconnection.close();
return ds;
}
catch( sqlexception ex )
{
sqlconnection.close();
strex = ex.message;
return null;
}
}
/// <summary>
/// 執(zhí)行某個存儲過程
/// </summary>
/// <param name="sp">存儲過程名</param>
/// <param name="xsd">數(shù)據(jù)集對象</param>
/// <param name="strex">異常信息</param>
/// <returns>執(zhí)行結(jié)果</returns>
public static void execsp( string sp, dataset xsd, ref string strex )
{
string strconnect = configurationsettings.appsettings["connectstring"];
sqlconnection sqlconnection = new sqlconnection( strconnect );
try
{
sqldataadapter sqldataadapter = new sqldataadapter( sp, sqlconnection );
sqldataadapter.selectcommand.commandtype = commandtype.storedprocedure;
for( int i = 0; i < xsd.tables["in"].columns.count; i++ )
{
string strcolumnname = xsd.tables["in"].columns[i].columnname;
sqldataadapter.selectcommand.parameters.add( "@" + strcolumnname, (xsd.tables["in"].rows[0])[i] );
}
for( int j = 0; j < xsd.tables["out"].columns.count; j++ )
{
string strcolumnname = xsd.tables["out"].columns[j].columnname;
sqldataadapter.selectcommand.parameters.add( "@" + strcolumnname, xsd.tables["out"].columns[j].datatype );
sqldataadapter.selectcommand.parameters["@" + strcolumnname].direction = parameterdirection.output;
}
sqldataadapter.fill( xsd, "out" );
}
catch( sqlexception ex )
{
strex = ex.message;
}
finally
{
sqlconnection.close();
}
}
}