ayuda con datagrid c#

Iniciado por greenselves, 4 Diciembre 2010, 01:22 AM

0 Miembros y 1 Visitante están viendo este tema.

greenselves

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.




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
Greenselves

[D4N93R]

Revisa permisos sobre esa Base de datos.!

greenselves

Te refieres a permisos de usuario?
Estoy entrando como system, tiene todos los permisos.
Greenselves

[D4N93R]

Revisa que te estás conectando a la instancia adecuada, solo en caso de haber más de una.

greenselves

gracias por la ayuda, lo resolvi creando un nuevo usuario con todos los permisos.
:D
Greenselves

greenselves

#5
Cita de: [D4N93R] en  7 Diciembre 2010, 03:25 AM
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 (csharp) [Seleccionar]
OdbcConnection conexion = new OdbcConnection("DSN=oraclexe;Uid=greenselves;Pwd=pasword");
conexion.Open();

OdbcCommand comando = new OdbcCommand("INSERT INTO clientes( IDcliente, nombre, direccion, ...) VALUES( 12, fulano, 'centro',...;", conexion);

comando.ExecuteNonQuery();
conexion.Close();



para mis textbox tengo esto:

Código (csharp) [Seleccionar]
private void textBox1_TextChanged(object sender, EventArgs e)
{
string idcliente = textBox1.Text;
}

private void textBox2_TextChanged(object sender, EventArgs e)
{
string nombre= textBox2.Text;
}


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

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

greenselves

pero como meto el dato ingresado del textBox al odbcComand?
Greenselves

Novlucker

#8
Cita de: Novlucker en  8 Diciembre 2010, 14:39 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 (csharp) [Seleccionar]
string scomando = "INSERT INTO clientes( IDcliente, nombre, direccion, ...) VALUES(" + textBox1.text +",'" + textBox2.text +"',...)";
OdbcCommand comando = new OdbcCommand(comando, conexion);


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

greenselves


Tengo el siguiente codigo:
Código (csharp) [Seleccionar]
OdbcConnection conexion = new OdbcConnection("DSN=oraclexe;Uid=greenselves;Pwd=pasword");
conexion.Open();

string insertar = ("INSERT INTO clientes( idcliente , nombre)
VALUES( textBox1.text,textBox2.text);");

OdbcCommand comando = new OdbcCommand(insertar, conexion);

comando.ExecuteNonQuery();
conexion.Close();


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?
Greenselves