Autor
|
Tema: Conexion Base de Datos con ACCESS ó SQL SERVER 2005 (Leído 10,283 veces)
|
Noskcire
Desconectado
Mensajes: 15
|
Hola A Todos mi problema es este:
Como lo he dicho antes estoy desarrollando una aplicación en donde tengo un login. He creado una base de datos de prueba llamada: USUARIO EN ACCESS 2007 donde esta cuenta solamente con una Tabla llamada: USUARIOS tambien; esta tiene dos campos: uno llamado "usuario" y otro llamado "clave"
Quiero conectar esta base de datos para poder hacer la validación en mi formulario LOGIN
Cuando le preciono el botón aceptar no hace nada , pero parece que mi conexuion esta bien o no se porke no me tira ningun error al ejecutar mi aplicación Solo que no me hace la validación y de prueba he puesto un MessageBox.Show("bien ha pasado")
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.OleDb;
namespace WindowsFormsApplication1 { public partial class LoginForm : Form { public LoginForm() { InitializeComponent(); } private void LoginForm_Load(object sender, EventArgs e) { } //evento para el botón Aceptar private void Aceptar_btn_Click(object sender, EventArgs e) { //cerando la cadena de conexion string cadena = @"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\Documents and Settings\Administrator\Desktop\ING. Figueroa\programacion . NET\C#\Proyecto\ORES SOFT\WindowsFormsOreSoft\WindowsFormsOreSoftAPP\USUARIOS.accdb;Persist Security Info=False";
//Objeto conexion OleDbConnection conexion = new OleDbConnection(cadena); conexion.Open(); string Usuario = this.usuario_tbx.Text; string Clave = this.clave_tbx.Text;
if (Usuario == "" || Clave == "") { MessageBox.Show("Debe llenar los Campos"); this.usuario_tbx.Focus(); return; } //Hago mi consulta string strsql = "SELECT [USUARIO], [CLAVE] FROM USUARIOS WHERE [USUARIO]=" + this.usuario_tbx + "[CLAVE]=" + this.clave_tbx + ""; //admin y ore es la credencial en mi tabla de USUARIOS
if (Usuario == "admin" && Clave == "Ore") { MessageBox.Show("hola ,paso"); } } //Evento Botón Cancelar private void Cancelar_btn_Click(object sender, EventArgs e) { //Sale de la aplicacion Application.Exit(); } } }
|
|
|
En línea
|
Las Intenciones Secretas son como aguas profundas per quien sabe descubrilas , es inteligente...
|
|
|
Pablo Videla
|
Hola que tal , creo que la consulta sql, esta mal hecha... seria tu la tienes asi string strsql = "SELECT [USUARIO], [CLAVE] FROM USUARIOS WHERE [USUARIO]=" + this.usuario_tbx + "[CLAVE]=" + this.clave_tbx +
creo que seria asi la forma correcta string strsql = "SELECT [USUARIO], [CLAVE] FROM USUARIOS WHERE [USUARIO]=" + this.usuario_tbx.Text + " AND [CLAVE]=" + this.clave_tbx.Text +" // si los datos son de textos algunos necesitan la comilla simple ' // dependiendo en que caso se vea... // tu error era que te falta la clausula AND en la consulta sql // puedo estar equivocado , pero confirmalo.
Y otra cosa, de donde estas obteniendo los datos clave y usuario , no veo que lo guarden en la variable que supuestamente deben obtener de la consulta sql.... creo que hay varios problemas ahi , por que no estas validando segun la consulta sql..... aqui te dejo un ejemplo como deberia ser... esto lo hice yo... OleDbConnection cnn = new OleDbConnection (); cnn.ConnectionString = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\autos.mdb"; cnn.Open(); OleDbCommand select = new OleDbCommand ("select * from usuarios where usuario = "+txt1 .Text+" and password = "+txt2 .Text+""); OleDbDataReader resultado; resultado = select.ExecuteReader(); // significa que mientras resultado arroje algo entrara en el while, si no , no //actuara while (resultado.Read()) { MsgBox("Entre al Sistema"); }// el codigo ha sido modificado para tu comprension
|
|
« Última modificación: 29 Julio 2009, 00:17 am por BadDevil »
|
En línea
|
|
|
|
Noskcire
Desconectado
Mensajes: 15
|
Hola Hermano Gracias por la atención pero sigo con el problema. Resulta que lo hice como me dijiste y me tira una exepción :
Connection property has not been initialized.
y se para el debuger en esta parte del codigo:
resultado = select.ExecuteReader();
AHORA MIRA TAMBIEN LO MODIFIQUE CONBINANDO LO que ME DISTE CON LO QUE TENIA PERO TAMBIEN ME TIRA ESTA EXEPCION:
ExecuteReader requires an open and available Connection
MIRA MI AULTIMO CODIGO:
//evento para el botón Aceptar private void Aceptar_btn_Click(object sender, EventArgs e) { string cadena = @"PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\Administrator\Desktop\ING. Figueroa\programacion . NET\C#\Proyecto\ORES SOFT\WindowsFormsOreSoft\WindowsFormsOreSoftAPP\usuARIOS.accdb";
// cadena de lectura string strsql = "select * from USUARIOS where USUARIO = " + usuario_tbx.Text + " and CLAVE =" + clave_tbx.Text + "";
using (OleDbConnection conexion = new OleDbConnection(cadena)) { OleDbCommand select = new OleDbCommand(strsql, conexion); OleDbDataReader resultado = select.ExecuteReader(); conexion.Open(); resultado.NextResult(); conexion.Dispose(); while (resultado.Read()) {
MessageBox.Show("Entre al sistema"); // el codigo ha sido modificado para tu comprension
}
resultado.Close(); } }
Y RECUERDATE QUE ESTA BASE DE DATOS ES EN ACCESS 2007 POR ESO EL PROVIDER LO PUSE COMO ESTA Y NO COMO TU LO PUSISTE
SI POR FAVOR ME PODRIAS MANDAR ALGO TERMINADO OSEA UN EJEMPLO CON TODO EL CODIGO, TE LO AGRADECERIA HERMANO YA ESTOY ROJO CON ESTO
GRACIAS ESPERO RESP...!!!1
|
|
|
En línea
|
Las Intenciones Secretas son como aguas profundas per quien sabe descubrilas , es inteligente...
|
|
|
Pablo Videla
|
Coloca OleDbDataReader resultado = select.ExecuteReader(); antes del executeReader por eso no detecta la conexion. , saludos si sigues con problemas me dices y te busco ejemplos
|
|
|
En línea
|
|
|
|
Noskcire
Desconectado
Mensajes: 15
|
ok te hago saber si me funciona y si no por favor buscame un ejemplo creado please!!
|
|
|
En línea
|
Las Intenciones Secretas son como aguas profundas per quien sabe descubrilas , es inteligente...
|
|
|
Noskcire
Desconectado
Mensajes: 15
|
no me funcionó out! si sta a tu alcance los ejemplos plz
|
|
|
En línea
|
Las Intenciones Secretas son como aguas profundas per quien sabe descubrilas , es inteligente...
|
|
|
Pablo Videla
|
mas claro imposible private void btAcceder_Click(object sender, EventArgs e) { try { OleDbConnection cnn = new OleDbConnection (); cnn.ConnectionString = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\autos.mdb"; cnn.Open(); OleDbCommand select = new OleDbCommand ("select * from conexion where password = '" + txtPassword .Text + "'", cnn ); OleDbDataReader resultado; resultado = select.ExecuteReader(); while (resultado.Read()) { MessageBox.Show("Clave Correcta"); tabControl1.Visible = true; btVerBase.Visible = true; btAcceder.Visible = false; txtPassword.Visible = false; label19.Visible = false; lbMaxConVerde.Visible = false; label1.Visible = true; //size 662; 689 this.Size = new System.Drawing.Size(662, 689); } if (tabControl1.Visible == false) { MessageBox.Show("Clave Incorrecta , intente nuevamente"); } } catch (Exception error) { MessageBox.Show("Error..." + error.Message); } }
|
|
|
En línea
|
|
|
|
Noskcire
Desconectado
Mensajes: 15
|
Gracias hermano , de todos modos no funciono, mejor lo hare con el sql en vez del acces
|
|
|
En línea
|
Las Intenciones Secretas son como aguas profundas per quien sabe descubrilas , es inteligente...
|
|
|
Pablo Videla
|
Por que no funciono , tratamos de solucionarlo viejo , de eso se trata la programacion , solucionar problemas ahora dinos que error te salio y todo con lujos de detalles si es posible, los codigos completos
|
|
|
En línea
|
|
|
|
seba123neo
|
Gracias hermano , de todos modos no funciono, mejor lo hare con el sql en vez del acces
un ejemplo mas facil no te pudieron poner...deci porque no te funciono...sino es pura suposición...mira el codigo y seguilo y fijate porque no anda...no creo que lo hayas escrito tal cual, debes adaptarlo a lo que vos tenes... saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PREGUNTA: Base de datos con privilegios en sql server 2005 express
Bases de Datos
|
Slevink
|
0
|
3,122
|
6 Junio 2011, 12:02 pm
por Slevink
|
|
|
vincular BD SQL Server 2005/2008 a MS Access 2007
Bases de Datos
|
rla1965
|
0
|
3,862
|
5 Agosto 2011, 16:03 pm
por rla1965
|
|
|
base de datos en sql server
Bases de Datos
|
kyrion24
|
0
|
2,383
|
27 Febrero 2014, 03:36 am
por kyrion24
|
|
|
AYUDA CON BASE DE DATOS SQL SERVER 2005
Desarrollo Web
|
indi.co
|
0
|
1,863
|
4 Noviembre 2014, 15:15 pm
por indi.co
|
|
|
En base de datos SQL server hay en un string 2 espacios
Bases de Datos
|
ElInquisidor
|
2
|
2,989
|
7 Mayo 2016, 19:40 pm
por MinusFour
|
|