Foros del Web » Programando para Internet » ASPX (.net) »

Problema con Insert en ASP.NET con C#

Estas en el tema de Problema con Insert en ASP.NET con C# en el foro de ASPX (.net) en Foros del Web. Hola a todos, espero y este bien, lo que pasa es para ver si me podrían ayudar con un INSERT de datos a ACCESS, que ...
  #1 (permalink)  
Antiguo 13/09/2012, 14:57
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Pregunta Problema con Insert en ASP.NET con C#

Hola a todos, espero y este bien, lo que pasa es para ver si me podrían ayudar con un INSERT de datos a ACCESS, que la verdad me esta poniendo problemas, se puede decir que este método ya lo he probado antes, pero la verdad no se porque no me quiere salir ahora, ya he probada imprimiendo la secuencia y todo esta perfectamente bien, pero no se por que me sale que hay error en el INSERT INTO. bueno sin mas que decir a qui les dejo el código:

Lo que hago primero es en el evento Click del boton, primero realizar una consulta, si existe que me mande un mensaje que el usuario que registra esta en uso y si no existe que pase al metodo de Registrar_Usuario.

Código Javascript:
Ver original
  1. protected void btnNew_Click(object sender, EventArgs e)
  2.         {
  3.             if (Buscar_Usuario(txtUsername.Text) == false )
  4.             {
  5.                 Registrar_Usuario(txtUsername.Text, txtPassword.Text, txtEmail.Text);              
  6.             }
  7.             else
  8.             {
  9.                 string script = @"<script type='text/javascript'>alert('El nombre de usuario : " + txtUsername.Text +" esta en Uso');</script>";
  10.                 ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
  11.             }
  12.  
  13.             //Registrar_Usuario(txtUsername.Text, txtPassword.Text, txtEmail.Text);
  14.         }

Y aquí esta el código que tengo:

Código Javascript:
Ver original
  1. private bool Registrar_Usuario(string Username, string Password, string Email)
  2.         {
  3.             // Utilizar una variable de cadena para sujetar el ConnectionString.
  4.             string connectString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = G:\\BD.accdb; Persist Security Info = false";
  5.  
  6.             // Crear un objeto OleDbConnection,
  7.             // y luego pasar la ConnectionString al constructor.
  8.             OleDbConnection cn = new OleDbConnection(connectString);            
  9.  
  10.             // Utilizar una variable para almacenar la instrucción SQL.
  11.             string selectString = "INSERT INTO usuario (username, password, email) VALUES ('" + Username + "','" + Password + "','" + Email + "')";
  12.  
  13.             // Crear un objeto OleDbCommand.
  14.             // Tenga en cuenta que esta línea pasa en la instrucción SQL y el objeto OleDbConnection
  15.             OleDbCommand cmd = new OleDbCommand(selectString, cn);            
  16.            
  17.             // Abro la conexion de la BD.    
  18.             cn.Open();
  19.             // Ejecuto el Query SQL.
  20.             cmd.ExecuteNonQuery();
  21.             // Cierro conexion de la BD.
  22.             cn.Close();          
  23.  
  24.             return true;
  25.         }

Si alguien sabe cual puede ser el problema me avisa, se lo agrade seria de verdad...
  #2 (permalink)  
Antiguo 13/09/2012, 16:10
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con Insert en ASP.NET con C#

Podrias publicar el mensaje de error que te manda?
__________________
http://ka0stj.wordpress.com/
  #3 (permalink)  
Antiguo 14/09/2012, 09:24
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Problema con Insert en ASP.NET con C#

Bueno el me manda un error en el:

cmd.ExecuteNonQuery();

y me dice que hay un error de sintaxis en el INSERT INTO... Pero ya lo he revisado y lo he requete revisado, hasta la base de datos la he cambiado como 5 veces para ver pero nada, pero lo mas raro es que la sintaxis me sale vien al ejecutarla en el SQL del Access, y sobre todo que este mismo metodo lo he utilizado ya en otro proyectos que he realizado...
  #4 (permalink)  
Antiguo 14/09/2012, 09:45
 
Fecha de Ingreso: enero-2002
Mensajes: 136
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Problema con Insert en ASP.NET con C#

Mira, lo más probable es que alguna de las variables tenga dentro de su valor un apóstrofo [´] que te está distorsionando la sintaxis, porque entiende que se abre un texto y no se cierra. Es eso o algo similar, pero siempre con los valores que adoptan las variables del INSERT.
Saludos.
  #5 (permalink)  
Antiguo 14/09/2012, 16:43
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: Problema con Insert en ASP.NET con C#

Usa parámetros en tus query así te evitas el estar poniendo comillas por cada dato quizas ahí tienes el error te falto alguna comillas.

Código c#:
Ver original
  1. private bool Registrar_Usuario(string Username, string Password, string Email)
  2. {
  3.  
  4.                 string connectString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = G:\\BD.accdb; Persist Security Info = false";
  5.      
  6.                 OleDbConnection cn = new OleDbConnection(connectString);            
  7.      
  8.        
  9.                 string selectString = "INSERT INTO usuario (username, password, email) VALUES (@name, @pass, @email)";
  10.      
  11.                
  12.                 OleDbCommand cmd = new OleDbCommand(selectString, cn);
  13.                 cmd.Parameters.AddWithValue("@name", username);          
  14.                 cmd.Parameters.AddWithValue("@pass", password);
  15.                 cmd.Parameters.AddWithValue("@email", email);
  16.  
  17.                 cn.Open();
  18.                 cmd.ExecuteNonQuery();
  19.                 cn.Close();          
  20.      
  21.                 return true;
  22. }
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #6 (permalink)  
Antiguo 14/09/2012, 21:07
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Problema con Insert en ASP.NET con C#

@Alfilxdama: Si de pronto tengas razón pero ya lo he revisado minuciosamente, pero de verdad gracias la ayuda.

@cristiantorres: Si de verdad me a servido mucho tu consejo y me ha salido muy bien, ya corre sin problema y lo probé con la BD de SQL Server 2008 y sale de maravilla, de verdad gracias...

Gracias a todos de verdad...

Solucionado...

Última edición por DeivisAndres; 18/09/2012 a las 08:30

Etiquetas: asp
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 14:03.