新闻中心

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

2025-12-14
浏览次数:
返回列表
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> 节里,方便修改和复用:

<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() 会自动处理打开/关闭连接。

android rtsp流媒体播放介绍 中文WORD版 android rtsp流媒体播放介绍 中文WORD版

本文档主要讲述的是android rtsp流媒体播放介绍;实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

android rtsp流媒体播放介绍 中文WORD版 1 查看详情 android rtsp流媒体播放介绍 中文WORD版

用 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 线程里长时间查库)。先跑通上面任一方式,再按需加事务、分页或异步加载。

以上就是WinForms怎么连接数据库 WinForms实现数据展示方法的详细内容,更多请关注其它相关文章!


# 多线程  # 南岸定制网站建设  # seo的八种方法  # seo速成课程优化  # 网站代码优化的方法  # 海南seo助手加盟电话  # seo网易博客  # 四川企业seo平台  # 推广网站获客成本怎么算  # 30岁转行做seo  # 南岸seo优化业务  # 单条  # 的是  # 装进  # word  # 如何处理  # 加载  # 放在  # 绑定  # 连接数据库  # 流媒体  # .net  # 异步加载  # win  # ai  # app  # 大数据 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 美团外卖商家服务中心入口 美团商家版官网入口  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  b站怎么看视频的弹幕数量_b站弹幕数量查看方法  学习通网页版官方登录 超星学习通电脑端入口指南  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  使用Python高效删除Word宏并转换DOCM为DOCX格式  蛙漫移动版在线看 蛙漫手机浏览器直达入口  Go语言中的*string:深入理解字符串指针  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  深入理解Go语言中的指针类型:以*string为例  Django模型中自动计算可用余额的实现方法  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景  AO3最新官网入口公告_2025AO3镜像站实时查询方法  护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  如何将HTML表格多行数据保存到Google Sheet  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】  sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置  Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】  深入理解J*a编译器的兼容性选项:从-source到--release  照顾宝贝2小游戏免费秒玩入口  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践  ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版  Spyder启动失败:字体文件权限拒绝错误解决方案  深入理解J*a合成构造器:何时以及为何阻止其生成  Django表单验证失败时保留用户输入数据的最佳实践  C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入  黑猫投诉统一入口官网 消费者权益保护投诉平台  天眼查企业查询官网入口 天眼查官方网页版查询  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践  整合Supabase认证与Django模型:跨模式迁移的解决方案  微信语音通话掉线如何解决 微信语音通话稳定优化方法  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  J*aScript 字符串标签转换:使用正则表达式高效替换  J*aScript类型检查_j*ascript代码规范  必由学网页版入口 必由学官方平台直接访问  生成rdflib自定义SPARQL函数:参数匹配与实践指南  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  必由学官网快捷入口 必由学网页版在线学习平台  Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略  win11如何加载ICC颜色配置文件 Win11校色文件安装与显示器色彩管理【指南】 

搜索