C/Visual C - Almacenar datos en tablas relacionadas

 
Vista:
sin imagen de perfil

Almacenar datos en tablas relacionadas

Publicado por natalia (1 intervención) el 16/06/2015 14:45:33
holaa! como estan!? espero estar en el foro correcto.... le comento que estoy realizando un trabajo en visual basic coin c# y motor de base de datos sql serber management, en mi programa de un videoclub donde debo cargar a una tabla los generos (id_genero(int pk autonumeric),genero varchar 50,descripcion varchar 50) , esta parte me funciona perfecto, el problema surge cuando tengo que dar el alta en la tabla pelicula ,(id_pelicula int pk autonumeric,nombre_pelicula varchar 50, web_pelicula varchar 50, descripcion varchar 50, id_genero int, anio int)

debo mostrar el genero en un combox y realizar la carga (los demas datos los carga perfectamente pero no se como hacer que carge el id del genero porque en el combox me muestra el nombre del genero) aca les paso mi codigo:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace WindowsFormsApplication1
{
    public partial class altapeli : Form
    {
        public altapeli()
        {
            InitializeComponent();
        }
        private SqlConnection conexion;
        private SqlDataAdapter adaptador;
        private DataSet datos;
        private void altapeli_Load(object sender, EventArgs e)
        {
            conexion = new SqlConnection("Data Source=2015-pc;Initial Catalog=administracion;Integrated Security=True");
            adaptador = new SqlDataAdapter();
            //alta pelis
            SqlCommand alta = new SqlCommand("insert into peliculas (nombre_pelicula,web_pelicula,descripcion,id_genero,anio) values (@nombre_pelicula,@web_pelicula,@descripcion,@genero,@anio)", conexion);
            adaptador.InsertCommand = alta;
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@nombre_pelicula", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@web_pelicula", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@descripcion", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@genero", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@anio", SqlDbType.Int));
 
            //mostrar combox pelis en grilla
            SqlCommand consulta = new SqlCommand("select nombre_pelicula,web_pelicula,descripcion,id_genero,anio from peliculas", conexion);
            adaptador.SelectCommand = consulta;
            datos = new DataSet();
            conexion.Open();
            adaptador.Fill(datos, "peliculas");
            conexion.Close();
            datapelis.DataSource = datos;
            datapelis.DataMember = "peliculas";
 
            // mostrar combox genero
            SqlCommand consulta2 = new SqlCommand("select genero,descripcion_genero from generos", conexion);
            adaptador.SelectCommand = consulta2;
            datos = new DataSet();
            adaptador.Fill(datos, "generos");
            cb2.DataSource = datos.Tables["generos"];
            cb2.DisplayMember = datos.Tables["generos"].Columns["genero"].ToString();
            cb2.ValueMember = datos.Tables["generos"].Columns["descripcion_genero"].ToString();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            adaptador.InsertCommand.Parameters["@nombre_pelicula"].Value = tn.Text;
            adaptador.InsertCommand.Parameters["@web_pelicula"].Value = tw.Text;
            adaptador.InsertCommand.Parameters["@descripcion"].Value = td.Text;
            adaptador.InsertCommand.Parameters["@genero"].Value = cb2.Text;
            adaptador.InsertCommand.Parameters["@anio"].Value = ta.Text;
            try
            {
                conexion.Open();
                adaptador.InsertCommand.ExecuteNonQuery();
 
            }
            catch (SqlException excepcion)
            {
                MessageBox.Show(excepcion.ToString());
            }
            finally
            {
                conexion.Close();
            }
        }
 
 
    }
}
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