Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 编程 » .NET 应用程序编程 » SQL Anywhere .NET 数据提供程序 » 访问和操作数据 » 使用 SADataAdapter 对象访问和操作数据

 

使用 SADataAdapter 对象操作数据

SADataAdapter 会将结果集检索到一个 DataTable 中。DataSet 是表 (DataTable) 以及这些表之间的关系和约束的集合。DataSet 内置在 .NET Framework 中,与用于连接数据库的数据提供程序无关。

使用 SADataAdapter 时,必须连接到数据库以填充 DataTable,并使用对 DataTable 的更改更新数据库。不过,填充 DataTable 后,可以在 DataTable 与数据库断开的情况下对其进行修改。

如果不希望立即将更改应用到数据库,可以使用 WriteXml 方法将 DataSet(包括数据和/或模式)写入 XML 文件。这样,以后就可以通过使用 ReadXml 方法装载 DataSet 来应用更改。以下提供了两个示例。

ds.WriteXml("Employees.xml");
ds.WriteXml("EmployeesWithSchema.xml", XmlWriteMode.WriteSchema);

有关详细信息,请参见 .NET Framework 文档中的 WriteXml 和 ReadXml 部分。

调用 Update 方法将 DataSet 的更改应用于数据库时,SADataAdapter 会对已经做出的更改进行分析,然后根据需要调用相应的 INSERT、UPDATE 或 DELETE 语句。使用 DataSet 时,只能对一个表中的数据进行更改(插入、更新或删除)。不能更新基于连接的数据集。如果其他用户锁定了您试图更新的行,则将抛出异常。

小心

对 DataSet 所做的所有更改都是在断开连接的情况下完成的。这意味着应用程序未锁定数据库中的这些行。如果在您的更改应用到数据库之前其他用户更改了您正修改的数据,则在将 DataSet 的更改应用到数据库时,会出现一些冲突。您的应用程序必须设计为能够解决这样的冲突。

 解决使用 SADataAdapter 时的冲突

使用 SADataAdapter 对象向表中插入行
使用 SADataAdapter 对象更新表中的行
使用 SADataAdapter 对象删除表中的行