Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Conexion Sql Express con programa hecho en C#

Estas en el tema de Conexion Sql Express con programa hecho en C# en el foro de SQL Server en Foros del Web. Saludos amigos de foros del web, hoy en la universidad me encargaron de proyecto final crear un programa en C# de modo ventanas,y este mismo ...
  #1 (permalink)  
Antiguo 08/12/2009, 12:29
 
Fecha de Ingreso: septiembre-2009
Mensajes: 63
Antigüedad: 14 años, 7 meses
Puntos: 0
Conexion Sql Express con programa hecho en C#

Saludos amigos de foros del web, hoy en la universidad me encargaron de proyecto final crear un programa en C# de modo ventanas,y este mismo enlazarlo a una base de datos en sql. Ya tengo hecho el programa y funciona bien, tambien la base de datos ya la tengo creada pero al intentar correr el programa con toda la base de datos me sale un errorsito el cual no se como solucionar.

Aqui el codigo del programa con todo y codigo para enlazar a la base:

Código:
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 baseproyecto
{
    public partial class Form1 : Form
    {
        public String conStr = "Data Source=.\\Sqlexpress; Initial Catalog=video;Integrated Security=true";
        public SqlConnection myCon = new SqlConnection();
        public SqlCommand myComm = new SqlCommand();
        public SqlDataAdapter myAdapter = new SqlDataAdapter();
        public String nombre, telefono, correo,direccion,ciudad;
        public int ID, i;
        

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ID = int.Parse(textBox1.Text);
            myCon.ConnectionString = conStr;
            myComm.CommandText = "Select nombre,telefono,correo,direccion,ciudad From cliente Where id_cliente ='" + ID + "' ";
            myComm.Connection = myCon;
            myAdapter.SelectCommand = myComm;
            DataSet myds = new DataSet();
            int numrows = myAdapter.Fill(myds, "video");
            if (numrows > 0)
            {
                textBox2.Text = myds.Tables["cliente"].Rows[0]["nombre"].ToString();
                textBox3.Text = myds.Tables["cliente"].Rows[0]["telefono"].ToString();
                textBox4.Text = myds.Tables["cliente"].Rows[0]["correo"].ToString();
                textBox5.Text = myds.Tables["cliente"].Rows[0]["direccion"].ToString();
                textBox6.Text = myds.Tables["cliente"].Rows[0]["ciudad"].ToString();
            }
            myCon.Close();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //creamos el objeto de la conexion
            SqlConnection mycon = new SqlConnection();
            //asignamos la cadena de la conexion
            mycon.ConnectionString = "Data source=.\\SqlExpress;initial catalog=video;" + "integrated security=true";
            //creamos un objeto de tipo comando
            SqlCommand mycommand = new SqlCommand();
            //asignamos consulta
            mycommand.CommandText = "select*from cliente";
            //conectamos el comando con la conexion a la base de datos
            mycommand.Connection = mycon;
            //creamos el adaptador para traer informacion de la base de datos
            SqlDataAdapter myAdapter = new SqlDataAdapter();
            myAdapter.SelectCommand = mycommand;
            //creamos un dataset para crear una imagen de la base de datos
            DataSet myds = new DataSet();
            //rellenamos el adaptador con la tabla a utilizar
            myAdapter.Fill(myds,"video");
            dataGridView1.DataSource = myds;
            dataGridView1.DataMember = "video";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ID = int.Parse(textBox1.Text);
            nombre = textBox2.Text;
            telefono = textBox3.Text;
            correo = textBox4.Text;
            direccion = textBox5.Text;
            ciudad = textBox6.Text;
            myCon.ConnectionString = conStr;
            myComm.CommandText = "UPDATE cliente SET Nombre='" + nombre + "',Telefono='" + telefono + "',"
                                 + "correo='" + correo + "',direccion='" + direccion+ "',ciudad='"+ciudad+" 'WHERE Id_cliente= '" + ID + "'";
            myComm.Connection = myCon;
            myCon.Open();
            i= myComm.ExecuteNonQuery();
            myCon.Close();
           
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string ConStr;
            int ID;
            ID = int.Parse(textBox1.Text);
            ConStr = "Data Source =.\\Sqlexpress; Initial catalog=video; integrated security=true";
                SqlConnection mycon=new SqlConnection();
            mycon.ConnectionString=ConStr;
            SqlCommand mycommand=new SqlCommand();
            mycommand.CommandText="Delete from cliente where id_cliente='" +ID+ " '";
            mycommand.Connection=mycon;
            mycon.Open();
            int i=mycommand.ExecuteNonQuery();
            mycon.Close();

        }

        private void button4_Click(object sender, EventArgs e)
        {
            nombre = textBox2.Text;
            telefono = textBox5.Text;
            correo = textBox4.Text;
            direccion = textBox3.Text;
            ciudad = textBox6.Text;
            myCon.ConnectionString = conStr;
            myComm.CommandText = "INSERT INTO cliente(Nombre,Telefono,correo,direccion,ciudad)"
            + " VALUES (' " + nombre + " ',' " + telefono + " ',' " + correo + " ','" + direccion + " ',' " + ciudad + " ')";
            myComm.Connection = myCon;
            myCon.Open();
            i = myComm.ExecuteNonQuery();
            myCon.Close();
        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }

        private void but_cargar_Click(object sender, EventArgs e)
        {
            myCon.ConnectionString = conStr;
            myComm.CommandText = "Select * From cliente";
            myComm.Connection = myCon;
            myAdapter.SelectCommand = myComm;
            DataSet myds = new DataSet();
            myAdapter.Fill(myds, "cliente");
            dataGridView1.DataSource = myds;
            dataGridView1.DataMember = "cliente";

        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            ID = int.Parse(textBox1.Text);
            myCon.ConnectionString = conStr;
            myComm.CommandText = "Select nombre,direccion,telefono,correo,ciudad From cliente Where id_cliente ='" + ID + "'";
            myComm.Connection = myCon;
            myAdapter.SelectCommand = myComm;
            DataSet myds = new DataSet();
            int numrows = myAdapter.Fill(myds, "cliente");
            if (numrows > 0)
            {
                textBox2.Text = myds.Tables["cliente"].Rows[0]["nombre"].ToString();
                textBox3.Text = myds.Tables["cliente"].Rows[0]["direccion"].ToString();
                textBox4.Text = myds.Tables["cliente"].Rows[0]["telefono"].ToString();
                textBox5.Text = myds.Tables["cliente"].Rows[0]["correo"].ToString();
                textBox6.Text = myds.Tables["cliente"].Rows[0]["ciudad"].ToString();
            }
            myCon.Close();

        }

        
    }
}
Cuando corro el programa me dice estos dos mensajes:
No se controlo SqlException y El nombre de objeto 'cliente' no es válido., cabe destacar que tanto en todo el codigo puse el nombre de la base de datos correctamente y claro tambien puse correctamente el de las tablas. Tambien la base de datos la ejecute en Sql y no me sali ningun error.

Cual seria la solucion a esto?

Saludos
  #2 (permalink)  
Antiguo 08/12/2009, 13:15
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Conexion Sql Express con programa hecho en C#

el error es claro, no existe el objeto cliente..

por lo que hay que identificar exactamente cual es el comando sql que lanza el error para realizar el ajuste de la conexion (base de datos) o el nombre de la tabla..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 08/12/2009, 13:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 63
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Conexion Sql Express con programa hecho en C#

Aqui es donde me marca el error:

myAdapter.Fill(myds,"cliente");


cliente seria una de mis tablas de la base de datos.

No se por que no me corre
  #4 (permalink)  
Antiguo 08/12/2009, 16:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Conexion Sql Express con programa hecho en C#

Me parece que en realidad tu problema viene de aquí:
Código c#:
Ver original
  1. myComm.CommandText = "Select nombre, telefono, correo, direccion, ciudad From cliente Where id_cliente ='" + ID + "' ";
Creo que lo que no existe es en realidad una tabla denominada "cliente".
¿No será que la has denominado "clientes" y no "cliente"?

Yo creo que el problema está allí porque una SqlException es un error en la ejecución de una sentencia en la base de datos, y esto:
Código c#:
Ver original
  1. myAdapter.Fill(myds,"cliente");
te devolvería una Exception, no una SqlException
En este caso, "cliente" es el nombre de una tabla del objeto DataSet. El objeto es el DataTable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/12/2009, 18:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 63
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Conexion Sql Express con programa hecho en C#

No ya volvi a revisar y mi tabla si se llama "cliente" y es asi como la tengo en el codigo.. El script de mi base es el siguiente:

Código:
create database video
create table dbo.cliente(
id_cliente int primary key not null identity,
nombre nvarchar (50)not null,
direccion nvarchar (50)not null,
telefono nchar (15)not null,
correo nvarchar (50)not null,
ciudad nvarchar (50)not null)

create table dbo.pelicula(
id_pelicula int primary key not null,
nombre nvarchar(50)not null,
clasificacion nvarchar(50)not null)

create table dbo.renta(
id_cliente int not null,
id_pelicula int not null,
fecha_renta smalldatetime not null)

create table dbo.entrega(
id_cliente int not null,
id_pelicula int not null,
fecha_entrega smalldatetime not null)

create table dbo. descuentos(
id_descuento int primary key not null,
id_cliente int not null,
tipo_descuento nvarchar(50) not null)


insert into cliente values ('Manuel Gutierrez Frescas','calle carrizal del norte #5346','6142178599','[email protected]','chihuahua')
insert into cliente values ('Vianney Dominguez Acevedo','portugal#5786','6144205746','[email protected]','chihuahua')
insert into cliente values ('Rosa Maria Zaragoza Chacon','Hacienda del Rey','6142190832','[email protected]','chihuahua')
insert into cliente values ('Perla Siqueiros Gracia','Calle Tepochcalli #6238','6144340647','perlisky@hotmail','Chihuahua')
insert into cliente values ('Janeth Grano Mendoza','Calle de la Rosa #5531','6144194563','[email protected]','chihuahua') 
 select *from cliente
insert into pelicula values('8234','Luna Nueva','Terror')
insert into pelicula values ('5467','Monster Inc','Infantil')
insert into pelicula values ('9516','chucky','Terror')
insert into pelicula values ('1426','Diario de una pasion','Romance')
insert into pelicula values ('0999','lluvia de Hamburguesas','Infantil')
select*from pelicula
insert into renta values ('2','9516','9-12-09')
insert into renta values ('5','8234','11-12-09')
insert into renta values ('1','1426','12-12-09')
insert into renta values ('3','5467','15-12-09')
insert into renta values ('4','0999','17-12-09')

select*from renta

insert into entrega values ('2','9516','11-12-09')
insert into entrega values ('5','8234','13-12-09')
insert into entrega values ('3','1426','15-12-09')
insert into entrega values ('4','5467','17-12-09')
insert into entrega values ('1','0999','19-12-09')
select * from entrega

insert into descuentos values ('555','3','25%')
insert into descuentos values ('267','2','15%')
insert into descuentos values ('333','1','20%')
insert into descuentos values ('231','4','5%')
insert into descuentos values ('429','5','30%')
  #6 (permalink)  
Antiguo 09/12/2009, 07:32
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Conexion Sql Express con programa hecho en C#

Tal vez lo que falta es :

create database video
GO

USE VIDEO
GO


create table dbo.cliente(
...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.