用c#實現的資料庫抽象工廠(三)
以下是在應用時真正要呼叫到的類:
(6)dbaccess.cs
using system;
using system.data;
namespace dbservice
///
/// 無條件查詢操作,即查詢表中所有記錄
///
/// 表名
/// 列名組
/// 無條件查詢結果
public static dataset selectall(string strtablename, string strcolumn)
strsql += (strcolumn[strcolumn.length - 1] + " from " + strtablename);
concretedbcommand.commandtext = strsql;
concretedbadapter.selectcommand = concretedbcommand;
concretedbadapter.fill(ds);
concretedbtrans.commit();
}catch
finally
return ds;
}///
/// 條件查詢操作
///
/// 表名
/// 列名組
/// 條件
/// 條件查詢結果
public static dataset select(string strtablename, string strcolumn, string strcondition)
strsql += (strcolumn[strcolumn.length - 1] + " from " + strtablename + " where " + strcondition);
concretedbcommand.commandtext = strsql;
concretedbadapter.selectcommand = concretedbcommand;
concretedbadapter.fill(ds);
concretedbtrans.commit();
}catch
finally
return ds;
}///
/// 單條記錄的插入操作
///
/// 表名
/// 列名組
/// 值組
public static void insert(string strtablename, string strcolumn, object strvalue)
strsql += (strcolumn[strcolumn.length - 1] + ") values ('");
for(int i = 0; i < strvalue.length - 1; i++)
strsql += (strvalue[strvalue.length - 1] + "')");
concretedbcommand.commandtext = strsql;
concretedbcommand.executenonquery();
concretedbtrans.commit();
}catch
finally }
///
/// 批量記錄的插入操作,即可一次向多張表中插入不同的批量記錄
///
/// 批量記錄組成的dataset,dataset中的各個datatable名為表名,各datatable中的datacolumn名為列名
public static void insertset(ref dataset ds)
strsql += (dt.columns[dt.columns.count - 1].caption + ") values ('");
for(int i = 0; i < dt.columns.count - 1; i++)
strsql += (dr[dt.columns.count - 1] + "')");
concretedbcommand.commandtext = strsql;
concretedbcommand.executenonquery();}}
concretedbtrans.commit();
}catch
finally }
///
/// 無條件刪除操作,即刪除表中所有記錄
///
/// 表名
public static void deleteall(string strtablename)
catch
finally }
///
/// 條件刪除操作
///
/// 表名
/// 條件
public static void delete(string strtablename, string strcondition)
catch
finally }
///
/// 無條件更新操作,即更新表中所有記錄
///
/// 表名
/// 列名組
/// 值組
public static void updateall(string strtablename, string strcolumn, object strvalue)
strsql += (strcolumn[strcolumn.length - 1] + " = '" + strvalue[strvalue.length - 1] + "' ");
concretedbcommand.commandtext = strsql;
concretedbcommand.executenonquery();
concretedbtrans.commit();
}catch
finally
}///
/// 條件更新操作
///
/// 表名
/// 列名組
/// 值組
/// 條件
public static void update(string strtablename, string strcolumn, object strvalue, string strcondition)
strsql += (strcolumn[strcolumn.length - 1] + " = '" + strvalue[strvalue.length - 1] + "' " + " where " + strcondition);
concretedbcommand.commandtext = strsql;
concretedbcommand.executenonquery();
concretedbtrans.commit();
}catch
finally}}
}最後一步,在web.config中的根結點configuration下增加一些關於資料庫連線字串的變數:
全文完
用C 實現的資料庫抽象工廠 一
用c 實現的資料庫抽象工廠 一 最近學習了一下設計模式,便嘗試用c 對資料庫的訪問操作採用抽象工廠的模式實現一下,其中與標準的模式略有不同,加入了一些自己的想法,希望大家批評指正,共分為6個類 1 abstractdbfactory.cs using system using system.data...
用C 實現的資料庫抽象工廠 一
用c 實現的資料庫抽象工廠 一 最近學習了一下設計模式,便嘗試用c 對資料庫的訪問操作採用抽象工廠的模式實現一下,其中與標準的模式略有不同,加入了一些自己的想法,希望大家批評指正,共分為6個類 1 abstractdbfactory.cs using system using system.data...
用C 實現的資料庫抽象工廠 三
以下是在應用時真正要呼叫到的類 6 dbaccess.cs using system using system.data namespace dbservice 無條件查詢操作,即查詢表中所有記錄 表名 列名組 無條件查詢結果 public static dataset selectall stri...
C 實現資料庫的遞迴查詢
表結構如下 標識號 名稱 上級標識號 mid mname mparentid 1 選單一 0 2 選單二 1 3 選單三 1 4 選單四 2 5 選單五 3 要用遞迴程式實現某一標識號 包括本身 下的所有選單,要實現這個程式,我們這裡取出所有符合的選單標識號,用 連線成字串,實現的方法如下 取得選單...
資料庫讀寫鎖的實現(C )
在資料庫中,對某資料的兩個基本操作為寫和讀,分佈有兩種鎖控制 排它鎖 x鎖 共享鎖 s鎖 排它鎖 x鎖 若事務t對資料d加x鎖,則其它任何事務都不能再對d加任何型別的鎖,直至t釋放d上的x鎖 一般要求在修改資料前要向該資料加排它鎖,所以排它鎖又稱為寫鎖。共享鎖 s鎖 若事務t對資料d加s鎖,則其它事...