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

WinForms 连接数据库并展示数据,核心是用 A DO.NET(如 SqlConnection、SqlDataAdapter、DataTable)获取数据,再绑定到控件(如 DataGridView、ListBox)。不依赖第三方 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流媒体播放介绍;实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
1 用 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 线程里长时间查库)。先跑通上面任一方式,再按需加事务、分页或异步加载。