MyGeneration学习笔记(2) : 使用dOOdad提供的通用操作

    技术2022-05-11  79

       初始化准备:   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()移动到下一行;

     

    最新回复(0)