elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C# codigo] insertar registro en base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C# codigo] insertar registro en base de datos  (Leído 34,359 veces)
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
[C# codigo] insertar registro en base de datos
« en: 2 Enero 2010, 15:52 pm »

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

Código:
[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

Código:
[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 Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [C# codigo] insertar registro en base de datos
« Respuesta #1 en: 2 Enero 2010, 16:07 pm »

Código
  1. Form2 campos = new Form2();
  2. campos.Show();
  3. dataGridView1.Update();
  4.  

cambialo por:

Código
  1. Form2 campos = new Form2();
  2. if (campos.Show() == DialogResult.OK)
  3.   dataGridView1.Update();
  4.  

Asi si en el formulario acepto, se recarga los registros, sino, no hace nada  ;D

Código
  1. añadir.CommandText = "insert into Datos_Personales values (" + textBox1.Text + ", " + textBox2.Text + ", " + textBox3.Text + ", " + textBox4.Text + ", " + textBox5.Text + ", " + textBox6.Text + ")";
  2. añadir.CommandType = CommandType.StoredProcedure; // WTF!!!
  3. // Agregar esto
  4. this.DialogResult = DialogResult.OK;
  5. this.Close();
  6.  

Procedimiento almacenado y una consulta  :huh:
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 Desconectado

Mensajes: 130


Ver Perfil
Re: [C# codigo] insertar registro en base de datos
« Respuesta #2 en: 3 Enero 2010, 12:23 pm »

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 Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [C# codigo] insertar registro en base de datos
« Respuesta #3 en: 3 Enero 2010, 15:07 pm »

Código
  1. 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 :P

Código
  1. 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 ;D
En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: [C# codigo] insertar registro en base de datos
« Respuesta #4 en: 3 Enero 2010, 23:18 pm »

uf es verdad!!! que fallo mas tonto!!! no me di cuenta raul338  :rolleyes: 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 Desconectado

Mensajes: 1


Ver Perfil
Re: [C# codigo] insertar registro en base de datos
« Respuesta #5 en: 19 Enero 2010, 17:33 pm »

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 Desconectado

Mensajes: 130


Ver Perfil
Re: [C# codigo] insertar registro en base de datos
« Respuesta #6 en: 20 Enero 2010, 08:58 am »

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-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP - Insertar formulario en base de datos MySQL
PHP
javierete 1 6,762 Último mensaje 7 Febrero 2011, 21:35 pm
por Nakp
insertar imagenes en base de datos « 1 2 3 »
Bases de Datos
xemnas 20 16,836 Último mensaje 12 Enero 2012, 18:16 pm
por Novlucker
Insertar datos en la base de datos
.NET (C#, VB.NET, ASP)
andaluz 5 4,681 Último mensaje 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 Último mensaje 6 Octubre 2012, 20:22 pm
por RevangelyonX
problema con formulario para insertar informacion en base de datos
PHP
abbyblack123 1 2,605 Último mensaje 24 Abril 2013, 17:48 pm
por s7evin
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines