Udostępnij za pośrednictwem


OracleDataAdapter.UpdateCommand Właściwość

Definicja

Pobiera lub ustawia instrukcję SQL lub procedurę składowaną używaną do aktualizowania rekordów w bazie danych.

public:
 property System::Data::OracleClient::OracleCommand ^ UpdateCommand { System::Data::OracleClient::OracleCommand ^ get(); void set(System::Data::OracleClient::OracleCommand ^ value); };
public System.Data.OracleClient.OracleCommand UpdateCommand { get; set; }
member this.UpdateCommand : System.Data.OracleClient.OracleCommand with get, set
Public Property UpdateCommand As OracleCommand

Wartość właściwości

Element OracleCommand używany podczas operacji aktualizacji do aktualizowania rekordów w bazie danych, które odpowiadają zmodyfikowanym wierszom w obiekcie DataSet.

Przykłady

Poniższy przykład tworzy obiekt OracleDataAdapter i ustawia SelectCommand właściwości i UpdateCommand . Przyjęto założenie, że utworzono OracleConnection już obiekt.

Public Shared Function CreateCustomerAdapter(conn As OracleConnection) As OracleDataAdapter   

  Dim da As OracleDataAdapter = New OracleDataAdapter()  
  Dim cmd As OracleCommand  
  Dim parm As OracleParameter  

  ' Create the SelectCommand.  

  cmd = New OracleCommand("SELECT * FROM Dept " & _  
                       "WHERE DName = pDName AND Loc = pLoc", conn)  

  cmd.Parameters.Add("pDName", OracleType.NVarChar, 14)  
  cmd.Parameters.Add("pLoc", OracleType.NVarChar, 13)  

  da.SelectCommand = cmd  

  ' Create the UpdateCommand.  

  cmd = New OracleCommand("UPDATE Dept SET DeptNo = pDeptNo, DName = pDName " & _  
                       "WHERE DeptNo = poldDeptNo", conn)  

  cmd.Parameters.Add("pDeptNo", OracleType.Number, 2, "DeptNo")  
  cmd.Parameters.Add("pDName", OracleType.NVarChar, 14, "DName")  

  parm = cmd.Parameters.Add("poldDeptNo", OracleType.Number, 2, "DeptNo")  
  parm.SourceVersion = DataRowVersion.Original  

  da.UpdateCommand = cmd  

  Return da  
End Function  
public static OracleDataAdapter CreateCustomerAdapter(OracleConnection conn)  
{  
  OracleDataAdapter da = new OracleDataAdapter();  
  OracleCommand cmd;  
  OracleParameter parm;  

  // Create the SelectCommand.  

  cmd = new OracleCommand("SELECT * FROM Dept " +  
                       "WHERE DName = pDName AND Loc = pLoc", conn);  

  cmd.Parameters.Add("pDName", OracleType.NVarChar, 14);  
  cmd.Parameters.Add("pLoc", OracleType.NVarChar, 13);  

  da.SelectCommand = cmd;  

  // Create the UpdateCommand.  

  cmd = new OracleCommand("UPDATE Dept SET DeptNo = pDeptNo, DName = pDName " +  
                       "WHERE DeptNo = poldDeptNo", conn);  

  cmd.Parameters.Add("pDeptNo", OracleType.Number, 2, "DeptNo");  
  cmd.Parameters.Add("pDName", OracleType.NVarChar, 14, "DName");  

  parm = cmd.Parameters.Add("poldDeptNo", OracleType.Number, 2, "DeptNo");  
  parm.SourceVersion = DataRowVersion.Original;  

  da.UpdateCommand = cmd;  

  return da;  
}  

Uwagi

Gdy UpdateCommand element jest przypisany do utworzonego wcześniej elementu OracleCommand, OracleCommand element nie jest klonowany. Zamiast tego obiekt UpdateCommand obsługuje odwołanie do wcześniej utworzonego OracleCommand obiektu.

Jeśli podczas operacji aktualizacji nie ustawiono i InsertCommand w zestawie danych znajdują się informacje o kluczu podstawowym, możesz użyć OracleCommandBuilder klasy do automatycznego generowania InsertCommandpoleceń i dodatkowych poleceń wymaganych do uzgodnienia DataSet bazy danych. W tym celu ustaw SelectCommand właściwość OracleDataAdapter. Logika generowania wymaga również obecności informacji o kolumnie klucza w obiekcie DataSet. Aby uzyskać więcej informacji, zobacz Generowanie poleceń za pomocą konstruktorów poleceń.

Uwaga

Jeśli wykonanie tego polecenia zwraca wiersze, te wiersze mogą być scalane z właściwością DataSet w zależności od sposobu ustawiania UpdatedRowSource właściwości OracleCommand obiektu.

Podczas aktualizowania kolumny z LONG RAW typem danych podczas wprowadzania wartości NULL w kolumnie jest zgłaszany wyjątek. Typ danych Oracle LONG RAW jest przestarzałym typem oracle w wersji 8.0. Aby uniknąć tego błędu, użyj BLOB typu danych zamiast LONG RAW.

Dotyczy

Zobacz też