Autor
|
Tema: [C# codigo] insertar registro en base de datos (Leído 34,359 veces)
|
SRVAM
Desconectado
Mensajes: 130
|
buenas amigos. me gustaria pediros un favor, y es que a ver si podeis revisar mi codigo y decirme que hago mal. lo que quiero es insertar un registro en una base de datos. utilizo sql server 2005 por si interesa. lo que quiero hacer, es que al darle al insertar se me abra un formulario con los campos de la tabla para rellenarlos y luego insertarlos. pero a la hora de hacer la sentencia para insertar el nuevo registro no se como hacerlo y llevo unos dias que no encuentro la forma de hacerlo espero que podais ayudarme. aqui os dejo todo el codigo. FORM 1 [code=csharp]using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;
namespace mantenimiento_BD { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
public SqlConnection conn = new SqlConnection(); public SqlDataAdapter DAdatos_personales; DataTable DTdatos = new DataTable(); public string stringconect = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\rafa2\\Desktop\\programas C#\\mantenimiento BD\\mantenimiento BD\\PruebasRafa.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
private void Form1_Load(object sender, EventArgs e) { try { conn.ConnectionString =stringconect; conn.Open(); DAdatos_personales = new SqlDataAdapter("select * from Datos_personales", conn); DTdatos.Clear(); DAdatos_personales.Fill(DTdatos); dataGridView1.DataSource = DTdatos; conn.Close(); } catch { MessageBox.Show("Se ha producido un error al coenctar con la base de datos", "Error de conexión", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } }
private void btn_insert_Click(object sender, EventArgs e) { Form2 campos = new Form2(); campos.Show(); dataGridView1.Update(); }
private void btn_update_Click(object sender, EventArgs e) {
}
private void btn_delete_Click(object sender, EventArgs e) {
}
} } [/code] FORM2 [code=csharp]using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data; using System.Data.SqlClient;
namespace mantenimiento_BD { public partial class Form2 : Form { public Form2() { InitializeComponent(); }
Form1 principal = new Form1(); SqlCommand añadir = new SqlCommand();
private void button1_Click(object sender, EventArgs e) {
Form1 principal = new Form1(); principal.conn.ConnectionString = principal.stringconect; principal.conn.Open(); añadir.Connection = principal.conn; añadir.CommandText = "insert into Datos_Personales values (" + textBox1.Text + ", " + textBox2.Text + ", " + textBox3.Text + ", " + textBox4.Text + ", " + textBox5.Text + ", " + textBox6.Text + ")"; añadir.CommandType = CommandType.StoredProcedure; añadir.ExecuteNonQuery(); principal.conn.Close(); this.Close(); } } } [/code] espero que podais ayudarme. muchas gracias y saludos a todos
|
|
|
En línea
|
C# Programmer
-Estudiante MCTS .NET Framework 3.5-
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Form2 campos = new Form2 ();campos.Show(); dataGridView1.Update();
cambialo por: Form2 campos = new Form2 ();if (campos.Show() == DialogResult.OK) dataGridView1.Update();
Asi si en el formulario acepto, se recarga los registros, sino, no hace nada añadir.CommandText = "insert into Datos_Personales values (" + textBox1.Text + ", " + textBox2.Text + ", " + textBox3.Text + ", " + textBox4.Text + ", " + textBox5.Text + ", " + textBox6.Text + ")"; añadir.CommandType = CommandType.StoredProcedure; // WTF!!! // Agregar esto this.DialogResult = DialogResult.OK; this.Close();
Procedimiento almacenado y una consulta jeje, la linea de procedimiento almacenado deberias borrarla, por lo demas esta bien. Aunque debes seguir aprendiendo (ado.net, para evitar SQL injection )
|
|
|
En línea
|
|
|
|
SRVAM
Desconectado
Mensajes: 130
|
buenas raul338.
hice lo que me dijiste, y al ejecutar el metodo añadir.ExecuteNonQuery() me aparece el siguiente error al agregar el campo textbox2.text, cuyo contenido corresponde al campo Nombre que esta definido como varchar(15)
No se controló System.Data.SqlClient.SqlException
Message="El nombre \"rafa\" no es válido en este contexto. Las expresiones válidas son constantes, expresiones de constantes y, en algunos contextos, variables. No se permiten nombres de columna."
y donde estaba el update del datagrid he añadido una consulta de toda la tabla.
a ver si podeis ayudarme con el error.
saludos
|
|
|
En línea
|
C# Programmer
-Estudiante MCTS .NET Framework 3.5-
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
añadir.CommandText = "insert into Datos_Personales values (" + textBox1.Text + ", " + textBox2.Text + ", " + textBox3.Text + ", " + textBox4.Text + ", " + textBox5.Text + ", " + textBox6.Text + ")";
En la consulta, te falto las comillas de los valores (INSERT INTO tabla VALUES ( " valor", "valor", etc...) .... cosa que ahi no estas poniendo añadir.CommandText = "insert into Datos_Personales values ('" + textBox1.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox4.Text + "', '" + textBox5.Text + "', '" + textBox6.Text + "')";
Ahi te deberia de andar
|
|
|
En línea
|
|
|
|
SRVAM
Desconectado
Mensajes: 130
|
uf es verdad!!! que fallo mas tonto!!! no me di cuenta raul338 muchas gracias por verme el error colega un saludo y gracias de nuevo ^^
|
|
|
En línea
|
C# Programmer
-Estudiante MCTS .NET Framework 3.5-
|
|
|
El condepimp
Desconectado
Mensajes: 1
|
hey me podrias mostrar los dos formularos que hicistes de este codigo porque estoy estudiando tu codigo y ya con los formularios creo que le voy a entender xfa soy nuevo en esto y quiero aprender.
|
|
|
En línea
|
|
|
|
SRVAM
Desconectado
Mensajes: 130
|
el formulario no tiene nada, solo un DataGridView y 3 botones jaja luego ya los textbox necesarios para introducir un registro a tu base de datos
|
|
|
En línea
|
C# Programmer
-Estudiante MCTS .NET Framework 3.5-
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PHP - Insertar formulario en base de datos MySQL
PHP
|
javierete
|
1
|
6,762
|
7 Febrero 2011, 21:35 pm
por Nakp
|
|
|
insertar imagenes en base de datos
« 1 2 3 »
Bases de Datos
|
xemnas
|
20
|
16,836
|
12 Enero 2012, 18:16 pm
por Novlucker
|
|
|
Insertar datos en la base de datos
.NET (C#, VB.NET, ASP)
|
andaluz
|
5
|
4,681
|
27 Febrero 2012, 21:12 pm
por seba123neo
|
|
|
Insertar datos de dos campos hidden y un campo de texto en la base de datos.
Desarrollo Web
|
70N1
|
4
|
4,970
|
6 Octubre 2012, 20:22 pm
por RevangelyonX
|
|
|
problema con formulario para insertar informacion en base de datos
PHP
|
abbyblack123
|
1
|
2,605
|
24 Abril 2013, 17:48 pm
por s7evin
|
|