商城首页欢迎来到中国正版软件门户

您的位置:首页 >WinForms连接数据库与数据展示教程

WinForms连接数据库与数据展示教程

  发布于2026-03-13 阅读(0)

扫一扫,手机访问

WinForms连接数据库展示数据的核心是ADO.NET三步法:配置连接字符串、用SqlDataAdapter填充DataTable、绑定到控件;推荐使用BindingSource提升灵活性,查询单条数据宜用SqlCommand配合参数化防止注入。

WinForms怎么连接数据库 WinForms实现数据展示方法

WinForms 连接数据库并展示数据,核心是用 A DO.NET(如 SqlConnectionSqlDataAdapterDataTable)获取数据,再绑定到控件(如 DataGridViewListBox)。不依赖第三方 ORM 也能快速实现,关键是把连接、查询、绑定三步理清楚。

配置数据库连接字符串

连接字符串告诉程序怎么找到数据库。SQL Server 常见写法如下(以本地 SQL Server Express 为例):

Server=.;Database=MyAppDB;Trusted_Connection=True;
或带账号密码:
Server=192.168.1.100;Database=MyAppDB;User Id=sa;Password=123456;

建议放在 app.config<connectionStrings> 节里,方便修改和复用:

<connectionStrings>
  <add name="MainConn" connectionString="Server=.;Database=MyAppDB;Trusted_Connection=True;" />
</connectionStrings>

代码中用 ConfigurationManager.ConnectionStrings["MainConn"].ConnectionString 读取。

用 SqlDataAdapter 填充 DataTable 并绑定 DataGridView

这是最常用、最轻量的数据展示方式,适合增删改查基础操作。

  • 新建一个 SqlConnection,传入连接字符串
  • 创建 SqlDataAdapter,传入 SQL 查询语句和连接对象
  • Fill() 方法把结果装进 DataTable
  • DataTable 直接赋给 DataGridView.DataSource

示例代码(放在窗体的 Load 事件里):

private void Form1_Load(object sender, EventArgs e)
{
    string connStr = ConfigurationManager.ConnectionStrings["MainConn"].ConnectionString;
    string sql = "SELECT Id, Name, Age FROM Users";

    using (SqlConnection conn = new SqlConnection(connStr))
    {
        SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        dataGridView1.DataSource = dt;
    }
}

注意:不用手动调用 conn.Open()SqlDataAdapter.Fill() 会自动处理打开/关闭连接。

用 BindingSource 实现更灵活的数据管理

如果后续要支持排序、筛选、新增行、同步编辑,推荐包一层 BindingSource

  • 它像一个“数据中介”,解耦 UI 和数据源
  • 支持 AllowNew = true 后,DataGridView 可直接添加新行
  • 调用 EndEdit()ResetBindings() 可刷新状态

绑定方式只需多一步:

bindingSource1.DataSource = dt;
dataGridView1.DataSource = bindingSource1;

之后新增、删除、修改都通过 bindingSource1 操作,最后用 SqlDataAdapter.Update() 回写数据库(需提前设置 InsertCommand 等)。

简单查询+单条数据显示(如用 TextBox、Label)

如果只是查一条记录显示在文本框里,用 SqlCommand.ExecuteScalar()ExecuteReader() 更高效:

string sql = "SELECT Name FROM Users WHERE Id = @id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
    cmd.Parameters.AddWithValue("@id", 123);
    conn.Open();
    object result = cmd.ExecuteScalar(); // 返回第一行第一列
    if (result != null) textBox1.Text = result.ToString();
}

注意参数化查询防 SQL 注入,别拼接字符串。

基本上就这些。WinForms 数据展示不复杂但容易忽略连接释放、异常处理和 UI 线程安全(大数据量时别在 UI 线程里长时间查库)。先跑通上面任一方式,再按需加事务、分页或异步加载。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注