Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/07/2011, 21:20
tiger015
 
Fecha de Ingreso: diciembre-2010
Mensajes: 63
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: Actualizar base de datos con DataAdapter.Update

No has entendido bien, Si se puede solo que el Comando update lo tienes que hacer tu con las tablas relacionadas que usas en tu consulta por ejemplo:

tengo 2 tablas, tabla 1 usuario con los campos ID,Usuario y la otra tipo con los campos IDUsuario,Tipo

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

SqlCommand comand;
SqlDataAdapter adapter;
SqlConnection Con;
DataTable tabla = new DataTable();
SqlParameter parametros;

private void Form1_Load(object sender, EventArgs e)
{
try
{
this.Con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Users\Rai my Alcantara\Documents\adapter.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True");
adapter = new SqlDataAdapter();

//consulta a dos tablas relacionadas aqui creo el selectcommand
comand = new SqlCommand("select usuario.ID,usuario.Usuario,tipo.IDUsuario,tipo.Tip o from usuario inner join tipo on usuario.ID = tipo.IDUsuario", this.Con);

// aqui se lo paso al adapter
adapter.SelectCommand = comand;

//aqui indico los campo que se actualizaran

comand = new SqlCommand("update usuario set ID = @ID,Usuario = @Usuario where ID = @IDviejo; update tipo set IDUsuario = @IDUsuario,Tipo = @Tipo where IDUsuario = @IDUsuarioviejo",this.Con);

//y aqui le paso los valores
comand.Parameters.Add("@ID", SqlDbType.Int, 4, "ID");

parametros = comand.Parameters.Add("@IDviejo",SqlDbType.Int,4," ID");
parametros.SourceVersion = DataRowVersion.Original;

comand.Parameters.Add("@Usuario", SqlDbType.VarChar,50, "Usuario");
comand.Parameters.Add("@IDUsuario", SqlDbType.Int, 4, "IDUsuario");

parametros = comand.Parameters.Add("@IDUsuarioviejo", SqlDbType.Int, 4, "IDUsuario");
parametros.SourceVersion = DataRowVersion.Original;

comand.Parameters.Add("@Tipo", SqlDbType.VarChar,50, "Tipo");

adapter.UpdateCommand = comand;

adapter.Fill(this.tabla);
}
catch (SqlException Ex)
{
MessageBox.Show(Ex.Message);
}
dataGridView1.DataSource = tabla;

}

private void button1_Click(object sender, EventArgs e)
{
this.adapter.Update(this.tabla);
}

//puedes practicar ya lo probe y funciona si tienes alguna duda solo pregunta
__________________
En la vida siempre encontraras a alguien inferior y Superior a ti