C#写一个包含站别扫码后显示作业人员,作业日期,作业时间,产品状态的桌面程序并且信息要上传到SQLserver数据库的具体代码
时间: 2024-09-07 16:03:42 浏览: 20
在C#中编写一个简单的桌面应用程序,它接收扫描的数据并将其存储到SQL Server数据库,需要使用Windows Forms库以及ADO.NET连接。以下是一个基本的步骤和示例代码:
首先,确保已经安装了`System.Data.SqlClient`命名空间,用于处理SQL数据库操作。
1. 创建一个新的Windows Form Application项目。
2. 添加必要的控件:
- Label (显示站别、作业人员等信息)
- TextBox (用户输入或扫码结果)
- Button (扫码后触发数据库操作)
- DateTimePicker (选择或获取作业日期和时间)
```csharp
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
public partial class MainForm : Form
{
private string connectionString = "你的数据库连接字符串"; // 替换为实际连接字符串
public MainForm()
{
InitializeComponent();
}
private void btnScan_Click(object sender, EventArgs e)
{
string scannedData = txtScannerInput.Text; // 假设txtScannerInput是从二维码读取的文本
DateTime selectedDate = dateTimePicker.Value;
SaveToDatabase(scannedData, selectedDate);
DisplayInformation(scannedData); // 显示已保存的信息
}
private void SaveToDatabase(string data, DateTime date)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "INSERT INTO YourTable (Station, Operator, Date, Time, Status) VALUES (@Station, @Operator, @Date, @Time, @Status)";
SqlCommand command = new SqlCommand(query, connection);
// 将数据绑定到参数
command.Parameters.AddWithValue("@Station", data.Split(',')[0]);
command.Parameters.AddWithValue("@Operator", data.Split(',')[1]);
command.Parameters.AddWithValue("@Date", date);
command.Parameters.AddWithValue("@Time", date.ToString("HH:mm:ss")); // 格式化时间
command.Parameters.AddWithValue("@Status", data.Split(',')[2]);
try
{
connection.Open();
command.ExecuteNonQuery();
MessageBox.Show("数据已成功保存到数据库。");
}
catch (Exception ex)
{
MessageBox.Show($"保存失败:{ex.Message}");
}
}
}
private void DisplayInformation(string scannedData)
{
// 假设data是以逗号分隔的格式,如"站名,作业人员,作业状态"
string[] parts = scannedData.Split(',');
lblInfo.Text = $"站别:{parts[0]}\n作业人员:{parts[1]}\n作业日期:{selectedDate.ToShortDateString()}\n作业时间:{dateTimePicker.Value}\n产品状态:{parts[2]}";
}
}
```