MyGeneration:使用dOOdad提供的通用操作

iDotNetSpace發表於2008-06-24
初始化準備:
  Employees emps = new Employees();
  int empID;

1.  獲取表中的所有資料行:
      emps.LoadAll();

 

 2.  根據主鍵獲取一行資料:
      emps.LoadByPrimaryKey(empID);

 

3.  插入一行:

emps.AddNew();
emps.LastName 
= "Smith";
emps.HireDate 
= DataTime.Now;
emps.Save();
empsID 
= emps.EmplyeeID;//插入後返回主鍵值。

       上面是dOOdad文件給出的例子,但是我呼叫Save方法插入資料庫沒有問題,但是獲取主鍵值會丟擲異常。預設生成的程式碼沒有將ID作為輸出引數,所以emps.EmplyeeID仍然為空,不能轉換成int。更正如下:

//在dOOdad生成業務實體抽象類Employees的GetInsertCommand()方法中加一條語句:
CreateParameters(cmd);
cmd.Parameters[
"@ID"].Direction = ParameterDirection.Output;//要加入的語句
return cmd;

 

4.   刪除一行:
      //先定位到要刪除的行(參考6.12 設定當前行)
      emps.MarkAsDeled();
      emps.Save();

      
5.   更新一行:
      //先定位到要更新的行
      emps.LastName = "Jones";
      emps.Save();

6.  獲取表中的行數:
      emps.RowCount;
  
7.  遍歷表中所有的資料行:      

if(emps.RowCount>0)
{
          emps.Rewind();
//使當前行指向第一行
          do
          
{
                
//自定義操作
           }
while(emps.MoveNext());
}

 

8.  設定排序表示式:
      emps.Sort = Employees.ColumnNames.LastName + " DESC";

 

9.  設定過濾/選擇表示式:
      emps.Filter = Employees.ColumnNames.LastName + " LIKE A%";


  
10.  對列進行操作(只是在應用程式的DataSet中進行,修改不會被儲存進資料庫):
          1)   AddColumn
          2)   SetColumn
          3)   GetColumn
          4)   IsColumnNull
          5)   SetColumnNull
          6)   Example:

if(emps.LoadAll())
{
     DataColumn col 
= emps.AddColumn("FullName", Type.GetType("System.String"));
     col.Expression 
= Employees.ColumnNames.LastName + "+ ', ' + " + Employees.ColumnNames.FirstName;
     
string fullName = emps.GetColumn("FullName"as string;
}

 

11.  關於連線字串:
       上面講到,可將連線字串儲存到配置檔案並賦給dbConnection鍵值;其實可以在執行時對字串進行賦值:
 emps.ConnectionString = "User=me;Password=pw;Database=Employees;DataSource=MyServer";

 

12.  設定當前行:
       當要修改或刪除一行時,該行必須被指定為當前行,可以通過如下幾種方法來實現:
       1). LoadAll()或Query.Load():將當前行指向第一行;
       2). LoadByPrimaryKey:將當前行指向返回的行;
       3). AddNew() 在插入資料庫之前,當前行指向正在操作的新行;
       4). Rewind()和MoveNext():Rewind()後當前行指向第一行,MoveNext()移動到下一行;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-364715/,如需轉載,請註明出處,否則將追究法律責任。

相關文章