返回主站|会员中心|保存桌面

美国英特格中国区域服务商    

英特格半导体设备及材料

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > C# 3U+SQL+BarCodeSCAN!
新闻中心
C# 3U+SQL+BarCodeSCAN!
发布时间:2025-08-19        浏览次数:7        返回列表

在C# 3.0(或更高版本)环境下结合SQL数据库与条码扫描功能,可通过IronBarcode/OnBarcode库实现高效条码读取,并通过ADO.NET或Entity framework与SQL数据库交互,以下为具体实现方案与分析:

一、条码扫描功能实现

  1. 选择条码扫描库

    csharpBarcodeReaderOptions options = new BarcodeReaderOptions();options.ExpectBarcodeTypes = BarcodeEncoding.EAN13;options.Speed = ReadingSpeed.Balanced;var barcodeResult = BarcodeReader.Read(@"barcode_EAN13.png", options);foreach (var barcode in barcodeResult){	Console.WriteLine("Barcode Value: " + barcode.Text);	Console.WriteLine("Barcode Format: " + barcode.BarcodeType);}
    csharp// 假设已下载并安装OnBarcode库var reader = new OnBarcode.Barcode.BarcodeReader();reader.BarcodeTypesToFind.Add(OnBarcode.Barcode.BarcodeType.Code128);var result = reader.DecodeFile(@"barcode_Code128.png");if (result != null){	Console.WriteLine("Barcode Value: " + result.BarcodeText);	Console.WriteLine("Barcode Format: " + result.BarcodeType.ToString());}
    • OnBarcode.Barcode.Reader:同样支持多种条码格式,提供丰富的扫描选项(如多线程扫描、指定扫描区域等),适用于ASP.NET Core和WinForms应用。示例代码:

    • IronBarcode:支持多种条码格式(如EAN13、Code 128、QR Code等),提供快速准确的读取性能,支持多线程处理和实时视频流扫描。示例代码:

  2. 集成USB条码扫描器

    • 若使用USB条码扫描器,可通过监听文本框输入事件(如KeyDownTextChanged)来捕获条码数据。大多数HID扫描器在扫描完成后会自动发送回车键,因此可监听回车键事件来触发数据处理逻辑。

二、SQL数据库交互实现

  1. 使用ADO.NET连接SQL数据库

    csharpstring connectionString = "Data Source=192.168.xx.xx\\SERVERR2;Initial Catalog=Barcode_Data;User ID=xxxx;Password=xxxxxx";using (SqlConnection connection = new SqlConnection(connectionString)){	connection.Open();	string query = "SELECT id, bcode, bdetail FROM Sheet1 WHERE bcode = @Barcodevalue";	SqlCommand command = new SqlCommand(query, connection);	command.Parameters.AddWithValue("@Barcodevalue", "扫描到的条码值");	SqlDataReader reader = command.ExecuteReader();	if (reader.Read())	{		Console.WriteLine("ID: " + reader["id"]);		Console.WriteLine("Barcode: " + reader["bcode"]);		Console.WriteLine("Detail: " + reader["bdetail"]);	}	reader.Close();}
    • 通过SqlConnectionSqlCommandSqlDataAdapter等类实现与SQL数据库的交互。示例代码:

  2. 使用Entity framework Core(可选)

    • 若项目使用Entity framework Core作为ORM框架,可更便捷地实现与SQL数据库的交互。需先安装Entity framework Core NuGet包,并配置数据库上下文。

三、完整应用示例

  1. 创建WinForms应用

    • 在Visual Studio中创建新的WinForms应用项目。

  2. 设计界面

    • 添加文本框(用于显示扫描到的条码值)、按钮(用于触发数据库查询)和DataGrid(用于显示查询结果)。

  3. 实现条码扫描与数据库查询逻辑

    • 在文本框的KeyDown事件中监听回车键,触发条码数据处理逻辑。

    • 在按钮的Click事件中执行数据库查询,并将结果显示在DataGrid中。

  4. 示例代码

csharp

private void textBoxBarcode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string barcodevalue = textBoxBarcode.Text.Trim();
if (!string.IsNullOrEmpty(barcodevalue))
{
QueryBarcodeData(barcodevalue);
}
e.Handled = true; // 阻止回车键的默认行为
}
}

private void QueryBarcodeData(string barcodevalue)
{
string connectionString = "Data Source=192.168.xx.xx\\SERVERR2;Initial Catalog=Barcode_Data;User ID=xxxx;Password=xxxxxx";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT id, bcode, bdetail FROM Sheet1 WHERE bcode = @Barcodevalue";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Barcodevalue", barcodevalue);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridViewResults.DataSource = dataTable;
}
}
收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服