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