You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将数据库数据导入dataGridView——C#/SQL Server(员工排班系统)

嘿,我来一步步教你用C#把SQL Server里的员工排班数据导入WinForms的DataGridView控件,全程超清晰:

1. 先搞定SQL Server连接字符串

首先你需要一个正确的连接字符串,用来连接你的SQL Server数据库。分两种情况:

  • Windows身份验证(推荐,不需要输入账号密码):
    string connectionString = @"Server=你的服务器名称;Database=你的数据库名称;Integrated Security=True;";
    
  • SQL Server身份验证
    string connectionString = @"Server=你的服务器名称;Database=你的数据库名称;User Id=你的SQL账号;Password=你的SQL密码;";
    

注意把里面的占位符替换成你实际的服务器、数据库、账号密码信息。

2. 编写查询数据的SQL语句

根据你提供的示例数据,写一个SELECT语句来获取需要的字段,记得替换成你实际的表名(比如我假设表名叫EmployeeSchedules):

SELECT 
    Id, 
    姓名, 
    DOB AS [出生日期], 
    TEL AS [电话], 
    Address AS [地址], 
    WDays AS [工作时段], 
    DateInWork AS [入职日期] 
FROM EmployeeSchedules;

这里用AS给字段起中文别名,这样DataGridView里的列头会直接显示中文,不用额外设置列名。

3. 用SqlDataAdapter填充数据并绑定到DataGridView

这是最常用也最省心的方法,全程用using块自动释放资源,避免内存泄漏。你可以把这段代码放到按钮点击事件里(比如一个“加载数据”的按钮):

using System.Data;
using System.Data.SqlClient; // .NET Framework用这个,.NET Core/.NET 6+用Microsoft.Data.SqlClient
using System.Windows.Forms;

private void btnLoadSchedule_Click(object sender, EventArgs e)
{
    // 替换成你的连接字符串
    string connectionString = @"Server=.\SQLEXPRESS;Database=StaffScheduleDB;Integrated Security=True;";
    // 替换成你的查询语句和表名
    string query = @"SELECT Id, 姓名, DOB AS [出生日期], TEL AS [电话], Address AS [地址], WDays AS [工作时段], DateInWork AS [入职日期] FROM EmployeeSchedules;";

    // 初始化DataTable用来存数据
    DataTable scheduleTable = new DataTable();

    try
    {
        // 用using块自动管理连接和适配器资源
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            using (SqlDataAdapter adapter = new SqlDataAdapter(query, conn))
            {
                adapter.Fill(scheduleTable); // 填充DataTable
            }
        }

        // 绑定到DataGridView
        dataGridView1.DataSource = scheduleTable;

        // 优化显示:自动调整列宽,让内容更清晰
        dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    }
    catch (Exception ex)
    {
        // 捕获异常并提示用户
        MessageBox.Show($"加载排班数据失败:{ex.Message}", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
几个重要的注意事项
  • 如果是用**.NET Core/.NET 6+**开发,你需要先在NuGet包管理器里安装Microsoft.Data.SqlClient(因为旧的System.Data.SqlClient已经被标记为过时)。
  • 确保你的SQL Server服务是运行状态,并且你的程序有访问数据库的权限。
  • 如果数据量很大,建议考虑分页加载,避免一次性加载太多数据导致界面卡顿。
  • 可以根据需求自定义DataGridView的样式,比如设置列的对齐方式、隐藏不需要的列等。

内容的提问来源于stack exchange,提问作者Wow Facts Wrong

火山引擎 最新活动