Hola a todo mundo soy nuevo en esto de los foros y esta es mi primer pregunta, bueno en realidad son 2 dudas. Me encuentro realizando una aplicacion en visual c# y necesito validar el acceso de personal mediante una autenticacion por codigo de barras, el numero que identifica al personal se encuentra predeterminado en una tabla en bd access.En resumidas cuentas lo que pretendo es pasar el codigo de barras por el scanner (datallogic magellan 2300hs) , se valida que exista en bd con los que ya estan predeterminados, y dar acceso al siguiente form.
estoy utilizando System.io.ports para manejar la interaccion con el puerto, en estos momentos ya logro obtener la informacion del puerto pero lo que obtengo son caracteres extraños (signos de interrogacion y algun que otro numero del codigo de barras coniside con el codigo original registrado), segun e leido en tutoriales y foros tengo que convertir esa informacion que ya obtuve pero no se a que tipo de codificacion (ASCII, BINARIO etc.) para manejarla en el tipo de que necesito que es en double, y la segunda duda es cuando intento abrir el puerto COM1 (es el que estoy manejando) no me permite el acceso, me marca un error de "se a denegado el acceso al puerto com1", siendo que ya cheque en administracion de dispositivos y la configuracion que le mando del fuente coinside con la que predetermino al com1, sobra decir que si me detecta el puerto. El codigo que tengo es el siguiente:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
public partial class Form1 : Form
{
public bool continuar;
SerialPort Com1;
string entrada = "";
string[] ports = SerialPort.GetPortNames();
string Convertir = "";
public Form1()
{
InitializeComponent();
}
private void Contraseñatxt_TextChanged(object sender, EventArgs e)
{
try
{
Com1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
Com1.DataReceived += new SerialDataReceivedEventHandler(com1_DatosRecibidos );
Convertir = System.Convert.ToString(Contraseñatxt.Text);
Com1.Open();
Application.Run();
OleDbConnection MiConeccion = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=C:\Validador\bd2.mdb;Persist Security Info=False");
MiConeccion.Open();
OleDbDataAdapter adap = new OleDbDataAdapter("SELECT Clave FROM Custodios", MiConeccion);
OleDbCommand command = new OleDbCommand("SELECT Clave FROM Custodios WHERE Clave=" + this.Contraseñatxt.Text + "", MiConeccion);
if (command.ExecuteReader().HasRows)
{
Opcciones Inst_op = new Opcciones();
this.Hide();
Inst_op.ShowDialog();
}
Com1.Close();
MiConeccion.Close();
}
catch (Exception Ex)
{
Console.WriteLine(Ex.Message);
}
}
private void com1_DatosRecibidos(object sender, SerialDataReceivedEventArgs e)
{
this.Contraseñatxt.Invoke( new EventHandler
( delegate
{Contraseñatxt.Text+= Com1.ReadExisting();}));
Convertir = System.Convert.ToString(Contraseñatxt.Text);
}
private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.Image = System.Drawing.Image.FromFile("C:/Misdocumentos/VisualStudio2005/Projects/ProyectoOxxo/ProyectoOxxo/Logo_oxxo.png");
}
Espero haber sido lo suficientemente claro como para que le puedan hechar una mano a este programador novato, de antemano gracias..