Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: greenselves en 4 Diciembre 2010, 01:22 am



Título: ayuda con datagrid c#
Publicado por: greenselves en 4 Diciembre 2010, 01:22 am
hola, estoy haciendo un programa en c#, un directorio, donde tengo que enlazarlo con mi base de datos en Oracle y mostrarlos y editarlos en mi aplicacion, para esto quiero usar un datagrid.
Ya he enlazado mi aplicacion a Oracle (utilizando ODBC).

Ahora me he quedado con un problema que me ha llevado algo de tiempo,
y es el  datagrid, donde al elegir las tablas que quiero que se vean en mi datagrid, no están.


(http://img820.imageshack.us/img820/91/42344890.png)

La conexion por Odbc esta hecha, ya la testeo antes de elegir los objetos, pero nada.

No se si me falta un paso intermedio para poder hacerlo.
Espero me puedan ayudar. Por su ayuda gracias!  :D


Título: Re: ayuda con datagrid c#
Publicado por: [D4N93R] en 7 Diciembre 2010, 03:25 am
Revisa permisos sobre esa Base de datos.!


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 03:00 am
Te refieres a permisos de usuario?
Estoy entrando como system, tiene todos los permisos.


Título: Re: ayuda con datagrid c#
Publicado por: [D4N93R] en 8 Diciembre 2010, 03:10 am
Revisa que te estás conectando a la instancia adecuada, solo en caso de haber más de una.


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 03:58 am
gracias por la ayuda, lo resolvi creando un nuevo usuario con todos los permisos.
 :D


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 14:29 pm
Revisa permisos sobre esa Base de datos.!

hola! espero me puedan ayudar con esta duda que tengo sobre un practica. Tengo un programa en C# donde tengo que conectarlo con una base de datos levantado en Oracle, para esto utilizao ODBC, bueno mis dudas son mas bien tecnicas en el uso de windows forms, pues la aplicacion la estoy implementando con GUI.

mi duda es de como insertar un dato (idcliente, nombre, direccion...) a la cadena para odbc con codigo.

mi codigo es el siguiente:

Código
  1. OdbcConnection conexion = new OdbcConnection("DSN=oraclexe;Uid=greenselves;Pwd=pasword");
  2. conexion.Open();
  3.  
  4. OdbcCommand comando = new OdbcCommand("INSERT INTO clientes( IDcliente, nombre, direccion, ...) VALUES( 12, fulano, 'centro',...;", conexion);
  5.  
  6. comando.ExecuteNonQuery();
  7. conexion.Close();


para mis textbox tengo esto:

Código
  1. private void textBox1_TextChanged(object sender, EventArgs e)
  2. {
  3. string idcliente = textBox1.Text;
  4. }
  5.  
  6. private void textBox2_TextChanged(object sender, EventArgs e)
  7. {
  8. string nombre= textBox2.Text;
  9. }

Asi mi problema es mas que nada con la sintaxis en VALUES, espero me puedan ayudar. saludos! :D


Título: Re: ayuda con datagrid c#
Publicado por: Novlucker en 8 Diciembre 2010, 14:39 pm
Utiliza las etiquetas geshi para los códigos, de ese modo quedan más legibles y entendibles, o al menos la etiqueta de código.

Así como lo tienes simplemente deberías de concatenar los valores dentro del odbcCommand.

Por otra parte, no te has planteado utilizar el proveedor de datos de Oracle que ya viene en .NET?
http://msdn.microsoft.com/es-es/library/system.data.oracleclient%28VS.80%29.aspx

También siempre que sea posible, prefiero utilizar Stored Procedures para el acceso a bases de datos.
http://www.c-sharpcorner.com/UploadFile/john_charles/CallingOraclestoredproceduresfromMicrosoftdotNET06222007142805PM/CallingOraclestoredproceduresfromMicrosoftdotNET.aspx

Saludos


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 15:14 pm
pero como meto el dato ingresado del textBox al odbcComand?


Título: Re: ayuda con datagrid c#
Publicado por: Novlucker en 8 Diciembre 2010, 15:27 pm
Así como lo tienes simplemente deberías de concatenar los valores dentro del odbcCommand

Algo de lo que no me había percatado, no te sirven de nada esos métodos que tienes para los textbox, savlo que tengas las variables declaradas directamente en el form. Junto al código que tienes para la conexión (y como he dicho antes) concatenas los valores de los textbox.

Código
  1. string scomando = "INSERT INTO clientes( IDcliente, nombre, direccion, ...) VALUES(" + textBox1.text +",'" + textBox2.text +"',...)";
  2. OdbcCommand comando = new OdbcCommand(comando, conexion);

Saludos


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 16:12 pm

Tengo el siguiente codigo:
Código
  1. OdbcConnection conexion = new OdbcConnection("DSN=oraclexe;Uid=greenselves;Pwd=pasword");
  2. conexion.Open();
  3.  
  4. string insertar = ("INSERT INTO clientes( idcliente , nombre)
  5. VALUES( textBox1.text,textBox2.text);");
  6.  
  7. OdbcCommand comando = new OdbcCommand(insertar, conexion);
  8.  
  9. comando.ExecuteNonQuery();
  10. conexion.Close();
  11.  

Lo arregle porque salia error por llamar al mismo objeto "comando", el nuevo es insertar.

Al ingresar datos desde el form, y hacer click en el boton de guardar cambios, se detiene el programa y me un  aparece error  en donde me tilda la parte de:  comando.ExecuteNonQuery();

y el siguiente mensaje.


ERROR [HY000] [Oracle][ODBC][Ora]ORA-00984: columna no permitida aquí


He revisado mi conexion con el Oracle y el contenido de mi tabla cliente, pero sigue igual.

algun consejo?


Título: Re: ayuda con datagrid c#
Publicado por: Novlucker en 8 Diciembre 2010, 16:53 pm
Efectivamente, cuando lo escribí no me di cuenta de que tenía el mismo nombre "comando"

Yo creo que no me estas leyendo, dime tu ¿donde estas concatenando los datos? Los más (+) estan por algo, hay que generar la string de alguna manera.

Saludos


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 8 Diciembre 2010, 17:48 pm
string insertar = ("INSERT INTO clientes( idcliente , nombre)
 VALUES(" + textBox1.text +",'" + textBox2.text +"',...);");

Me marca error desde que pongo la primera coma.
supongo que es porque es codigo para Oracle.


Título: Re: ayuda con datagrid c#
Publicado por: Novlucker en 8 Diciembre 2010, 17:54 pm
greenselves, creo que no hay mucho más que agregar, es que lo estas haciendo mal, fijate que por ejemplo tienes mal puesta las comillas, no es porque sea tema de Oracle sino porque no estas generando correctamente el string.

Saludos


Título: Re: ayuda con datagrid c#
Publicado por: greenselves en 18 Diciembre 2010, 15:59 pm
Bueno aqui esta codigo para insertar datos desde textBox

Código:
string insertar = (" INSERT INTO clientes( idcliente , nombre ) 
VALUES('" + textBox1.Text + "','" + textBox2.Text +"')");