Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
以下示例显示如何使用 SADataAdapter 的 Update 方法删除表中的行。在本示例中,将向 Departments 表添加两个新行,并使用 SADataAdapter 的 SelectCommand 属性和 Fill 方法将该表提取到 DataTable 中。然后,删除 DataTable 中的一些行,并使用 SADataAdapter 的 DeleteCommand 属性和 Update 方法更新 DataTable 中的 Departments 表。
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 16 Demo" ); conn.Open(); SACommand prepCmd = new SACommand("", conn); prepCmd.CommandText = "DELETE FROM Departments WHERE DepartmentID >= 600"; prepCmd.ExecuteNonQuery(); prepCmd.CommandText = "INSERT INTO Departments VALUES (600, 'Eastern Sales', 902)"; prepCmd.ExecuteNonQuery(); prepCmd.CommandText = "INSERT INTO Departments VALUES (700, 'Western Sales', 902)"; prepCmd.ExecuteNonQuery(); SADataAdapter da = new SADataAdapter(); da.MissingMappingAction = MissingMappingAction.Passthrough; da.MissingSchemaAction = MissingSchemaAction.AddWithKey; da.SelectCommand = new SACommand( "SELECT * FROM Departments", conn); da.DeleteCommand = new SACommand( "DELETE FROM Departments WHERE DepartmentID = ?", conn); da.DeleteCommand.UpdatedRowSource = UpdateRowSource.None; SAParameter parm = new SAParameter(); parm.SADbType = SADbType.Integer; parm.SourceColumn = "DepartmentID"; parm.SourceVersion = DataRowVersion.Original; da.DeleteCommand.Parameters.Add(parm); DataTable dataTable = new DataTable("Departments"); int rowCount = da.Fill(dataTable); foreach (DataRow row in dataTable.Rows) { if (Int32.Parse(row[0].ToString()) > 500) { row.Delete(); } } rowCount = da.Update(dataTable); dataTable.Clear(); rowCount = da.Fill(dataTable); conn.Close(); dataGridView1.DataSource = dataTable;