C sharp - Conexión de la base de datos a los formularios

 
Vista:
Imágen de perfil de valeria

Conexión de la base de datos a los formularios

Publicado por valeria (3 intervenciones) el 13/02/2014 05:27:20
Hola estoy aprendiendo c sharp, estoy haciendo un ABM de registra las reservas que se realizan en un hotel con una base de datos interna, ya hice los formularios y la conexión con la base de datos, mas o menos lo que hice para el Alta seria primero pide el ID del cliente (que sería DNI/pasaporte) lo ingresa y realiza una búsqueda si el cliente ya hizo una reserva anterior se supone que ese ID ya esta registrado y en ese caso automáticamente los datos del cliente son recuperados (y en caso de no encontrar el ID se ingresarían todos los datos) y solo se tendría que ingresar los datos de la reserva, y acá esta mi duda, el campo Nro de Reserva es autonumérico y se supone que al hacer un alta de reserva me lo tendría que generar automáticamente y eso es lo que no he podido hacer, tanto si el cliente ya esta registrado como si no, quiero que el campo Nro de Reserva se genere automáticamente.

Acá les dejo una captura del formulario y parte del código:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private void Cmb_Buscar_Click(object sender, EventArgs e)
        {
            //Desbloquear controles para poder ingresar un nuevo registro
            InterfaceDatos();
 
            //Conexión
            Conexion Con = new Conexion();
 
            //Adaptador. Va a seleccionar un registro si coincide con el DNI/Pasaporte que se ingreso por teclado
            SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM Tb_Cliente WHERE Id_Cliente = '"+Tex_IdCliente.Text+"'", Con.Conexionbd);
 
            //DataSet
            DataSet Ds = new DataSet();
 
            //Llenar el Dataset
            Con.Conexionbd.Open();
            adp.Fill(Ds, "Tb_Cliente");
            Con.Conexionbd.Close();
 
            //si encontró un registro con el Id ingresado, devuelve los datos correpondientes a ese cliente
            if (Ds.Tables[0].Rows.Count > 0)
            {
                Tex_Nombre.Text = Ds.Tables[0].Rows[0][1].ToString();
                Tex_Apellido.Text = Ds.Tables[0].Rows[0][2].ToString();
                Tex_CodAreaTel.Text = Ds.Tables[0].Rows[0][3].ToString();
                Tex_Telefono.Text = Ds.Tables[0].Rows[0][4].ToString();
                Tex_Direccion.Text = Ds.Tables[0].Rows[0][5].ToString();
                Tex_Nacionalidad.Text = Ds.Tables[0].Rows[0][6].ToString();
                Tex_Ocupacion.Text = Ds.Tables[0].Rows[0][7].ToString();
 
             }
            else
            {
                MessageBox.Show("El Cliente no esta resgistrado", "", MessageBoxButtons.OK);
                InterfaceDatos();
            }
 
        }

Espero haberme explicado bien, y que puedan ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Conexión de la base de datos a los formularios

Publicado por Pico (114 intervenciones) el 13/02/2014 08:05:32
Eso donde mejor puedes hacerlo es al diseñar la tabla. Al campo que quieras le pones que es Identidad, en qué valor tiene que comenzar y cuánto tiene que incrementarse. Puedes hacerlo también por código, pero acabas antes haciéndolo con el Enterprise Manager.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de valeria

Conexión de la base de datos a los formularios

Publicado por valeria (3 intervenciones) el 13/02/2014 15:50:17
Hola, si eso lo hice...el tema es que pude hacer que al momento de ejecutar la aplicación me genere el nro de reserva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión de la base de datos a los formularios

Publicado por Pico (114 intervenciones) el 14/02/2014 10:30:59
Es que os explicáis de pena.

Si un campo es autonumérico se incrementa él solo en cada insert, pero sólo al hacer el insert, no antes. Si lo que quieres es saber qué número de reserva le correspondería a una nueva entrada en la tabla lo que tienes que hacer es pedirle a esa tabla el valor MAX del campo de reserva. Es lo que hace el motor de la base de datos. Si un campo es autonumérico al hacer una inserción de una fila nueva mira a a ver cuánto vale el campo autonumérico, le incrementa lo que le hayas dicho al diseñarla que se tiene que incrementar, pone el valor ese en el campo y hace la inserción.

http://www.w3schools.com/sql/sql_func_max.asp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Conexión de la base de datos a los formularios

Publicado por Esteban Bazán (6 intervenciones) el 02/03/2014 15:25:10
Bien, haber, he estado viendo este tema recientemente, lo que tu quieres es saber el número de reserva generado por la base de datos, en este trabajo tuyo, estas creando un nuevo registro, una nueva reserva, no es práctico generar un número de identidad en el propio data set, el que realmente importa es el proporcionado por la base de datos cuando insertas esos datos en la tabla de Reservas. Lo lógico aquí sería usar parámetros, tanto para los datos del formulario que estas proporcionando, en este caso serían parámetros de entrada, y para saber el número de reserva pues tienes que usar un parámetro de salida, es decir, que la propia base de datos devuelva el último valor de identidad generado y este se reflejé en el formulario de tu aplicación.

Bueno espero que te haya servido, puedes enviarme un Mail para más detalles.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de valeria

Conexión de la base de datos a los formularios

Publicado por valeria (3 intervenciones) el 18/03/2014 05:04:38
Gracias Esteban Bazán, me fue de mucha ayuda y lo pude solucionar!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar