SqlCeDataAdapter.InsertCommand Property
Obtiene o establece una instrucción SQL utilizada para insertar nuevos registros en el origen de datos.
Espacio de nombres: System.Data.SqlServerCe
Ensamblado: System.Data.SqlServerCe (en system.data.sqlserverce.dll)
Sintaxis
'Declaración
Public Property InsertCommand As SqlCeCommand
public SqlCeCommand InsertCommand { get; set; }
public:
property SqlCeCommand^ InsertCommand {
SqlCeCommand^ get ();
void set (SqlCeCommand^ value);
}
/** @property */
public SqlCeCommand get_InsertCommand ()
/** @property */
public void set_InsertCommand (SqlCeCommand value)
public function get InsertCommand () : SqlCeCommand
public function set InsertCommand (value : SqlCeCommand)
Valor de la propiedad
SqlCeCommand utilizado durante Update para insertar registros en el origen de datos que se corresponden con las filas nuevas de DataSet.
Notas
Durante una llamada a Update, si no está establecida esta propiedad y hay información de clave primaria en la clase DataSet, se puede generar la propiedad InsertCommand automáticamente si se establece la propiedad SelectCommand y se utiliza la clase SqlCeCommandBuilder. Así, SqlCeCommandBuilder genera los comandos adicionales que no se hayan establecido. Esta lógica de generación requiere que haya información de las columnas de clave en DataSet.
Cuando se asigna InsertCommand a un objeto SqlCeCommand creado previamente, la clase SqlCeCommand no se clona. La propiedad InsertCommand mantiene una referencia al objeto SqlCeCommand creado previamente.
Nota
Si la ejecución de este comando devuelve filas, estas filas pueden agregarse a la clase DataSet en función de la forma en que se establezca la propiedad UpdatedRowSource del objeto SqlCeCommand.
Ejemplo
En el ejemplo siguiente se crea un objeto SqlCeDataAdapter y se establecen algunas de sus propiedades.
Dim cmd As SqlCeCommand = Nothing
Dim adp As SqlCeDataAdapter = Nothing
Try
adp = New SqlCeDataAdapter()
Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
' Create the SelectCommand
'
cmd = conn.CreateCommand()
cmd.CommandText = "SELECT [Employee ID], [First Name], [Last Name] FROM Employees"
adp.SelectCommand = cmd
' Create the InsertCommand
'
cmd = conn.CreateCommand()
cmd.CommandText = "INSERT INTO Employees ([First Name],[Last Name]) VALUES (@first, @last)"
Dim p As SqlCeParameter = Nothing
p = cmd.Parameters.Add("@first", SqlDbType.NVarChar, 10, "First Name")
p.SourceVersion = DataRowVersion.Original
p = cmd.Parameters.Add("@last", SqlDbType.NVarChar, 20, "Last Name")
p.SourceVersion = DataRowVersion.Original
adp.InsertCommand = cmd
' Create the UpdateCommand
'
cmd = conn.CreateCommand()
cmd.CommandText = "UPDATE Employees SET [First Name] = @first, " + _
"[Last Name] = @last WHERE [Employee ID] = @employeeID"
p = cmd.Parameters.Add("@first", SqlDbType.NVarChar, 10, "First Name")
p.SourceVersion = DataRowVersion.Current
p = cmd.Parameters.Add("@last", SqlDbType.NVarChar, 20, "Last Name")
p.SourceVersion = DataRowVersion.Current
p = cmd.Parameters.Add("@employeeID", SqlDbType.NVarChar, 20, "Employee ID")
p.SourceVersion = DataRowVersion.Original
adp.UpdateCommand = cmd
' Populate the dataset with the results from the SELECT statement
'
Dim ds As New DataSet()
adp.Fill(ds)
' Modify the dataset
'
MessageBox.Show("Number of rows: " & ds.Tables(0).Rows.Count)
' Insert some rows
'
ds.Tables(0).Rows.Add(New Object() {Nothing, "Barbara", "Decker"})
ds.Tables(0).Rows.Add(New Object() {Nothing, "Joe", "Clayton"})
' Update some rows
'
ds.Tables(0).Rows(1)(1) = "David"
ds.Tables(0).Rows(1)(2) = "Johnson"
' This will execute two INSERT and one UPDATE statements
'
adp.Update(ds.Tables(0))
Catch e As Exception
MessageBox.Show(e.Message)
Finally
If Not Nothing Is adp.SelectCommand Then
adp.SelectCommand.Dispose()
End If
If Not Nothing Is adp.InsertCommand Then
adp.InsertCommand.Dispose()
End If
End Try
SqlCeCommand cmd = null;
SqlCeDataAdapter adp = null;
try
{
adp = new SqlCeDataAdapter();
SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
// Create the SelectCommand
//
cmd = conn.CreateCommand();
cmd.CommandText = "SELECT [Employee ID], [First Name], [Last Name] FROM Employees";
adp.SelectCommand = cmd;
// Create the InsertCommand
//
cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO Employees ([First Name],[Last Name]) VALUES (@first, @last)";
SqlCeParameter p = null;
p = cmd.Parameters.Add("@first", SqlDbType.NVarChar, 10, "First Name");
p.SourceVersion = DataRowVersion.Original;
p = cmd.Parameters.Add("@last", SqlDbType.NVarChar, 20, "Last Name");
p.SourceVersion = DataRowVersion.Original;
adp.InsertCommand = cmd;
// Create the UpdateCommand
//
cmd = conn.CreateCommand();
cmd.CommandText = "UPDATE Employees SET [First Name] = @first, " +
"[Last Name] = @last WHERE [Employee ID] = @employeeID";
p = cmd.Parameters.Add("@first", SqlDbType.NVarChar, 10, "First Name");
p.SourceVersion = DataRowVersion.Current;
p = cmd.Parameters.Add("@last", SqlDbType.NVarChar, 20, "Last Name");
p.SourceVersion = DataRowVersion.Current;
p = cmd.Parameters.Add("@employeeID", SqlDbType.NVarChar, 20, "Employee ID");
p.SourceVersion = DataRowVersion.Original;
adp.UpdateCommand = cmd;
// Populate the dataset with the results from the SELECT statement
//
DataSet ds = new DataSet();
adp.Fill(ds);
// Modify the dataset
//
MessageBox.Show("Number of rows: " + ds.Tables[0].Rows.Count);
// Insert some rows
//
ds.Tables[0].Rows.Add(new object[] { null, "Barbara", "Decker" });
ds.Tables[0].Rows.Add(new object[] { null, "Joe", "Clayton" });
// Update some rows
//
ds.Tables[0].Rows[1][1] = "David";
ds.Tables[0].Rows[1][2] = "Johnson";
// This will execute two INSERT and one UPDATE statements
//
adp.Update(ds.Tables[0]);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (null != adp.SelectCommand) adp.SelectCommand.Dispose();
if (null != adp.InsertCommand) adp.InsertCommand.Dispose();
}
Seguridad para subprocesos
Todos los miembros (Compartidos en Microsoft Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.
Plataformas
Plataformas de desarrollo
Windows Vista, Windows Mobile 5.0, Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Mobile 2003 for Pocket PC, Windows CE 5.0
Información de la versión
.NET Framework y NET Compact Framework
Se admite en 3.5
.NET Framework
Se admite en 3.0
.NET Compact Framework y .Net Framework
Se admite en 2.0
Vea también
Referencia
SqlCeDataAdapter Class
SqlCeDataAdapter Members
System.Data.SqlServerCe Namespace
SqlCeDataAdapter.DeleteCommand Property
SelectCommand
UpdateCommand