使用Datagrid获取数据库数据,分享连接技巧与高效查询方法,轻松实现数据展示与管理

文章导读
首先,建立数据库连接:在WinForms中,使用SqlConnection类连接SQL Server数据库。代码示例:using (SqlConnection conn = new SqlConnection("server=.;database=TestDB;integrated security=true;")) { conn.Open(); string sql = "SELECT * FR
📋 目录
  1. 连接技巧
  2. 高效查询方法
  3. 数据展示优化
  4. 分页查询技巧
  5. 增删改操作
A A

首先,建立数据库连接:在WinForms中,使用SqlConnection类连接SQL Server数据库。代码示例:using (SqlConnection conn = new SqlConnection("server=.;database=TestDB;integrated security=true;")) { conn.Open(); string sql = "SELECT * FROM Users"; SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; } 这就是最简单的连接和填充DataGridView的方法。

连接技巧

使用连接字符串的最佳实践是放在app.config文件中,避免硬编码。<connectionStrings><add name="connStr" connectionString="server=.;database=TestDB;integrated security=true;" /></connectionStrings> 然后读取:string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; 这样修改数据库信息时只需改配置文件。

高效查询方法

为了高效查询,避免SELECT *,指定需要的列:string sql = "SELECT Id, Name, Age FROM Users WHERE Age > 18"; 使用参数化查询防止SQL注入:SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Name=@name", conn); cmd.Parameters.AddWithValue("@name", txtName.Text); SqlDataReader reader = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader);

使用Datagrid获取数据库数据,分享连接技巧与高效查询方法,轻松实现数据展示与管理

数据展示优化

DataGridView数据绑定后,可以设置列宽、只读等属性:dataGridView1.AutoGenerateColumns = false; DataGridViewColumn col = new DataGridViewTextBoxColumn(); col.DataPropertyName = "Name"; dataGridView1.Columns.Add(col); 这样可以自定义显示。

分页查询技巧

大数据量时用分页:string sql = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY Id) AS RowNum, * FROM Users) AS T WHERE RowNum BETWEEN @start AND @end"; 使用参数控制页码,实现高效分页加载。

使用Datagrid获取数据库数据,分享连接技巧与高效查询方法,轻松实现数据展示与管理

增删改操作

直接在DataGridView上编辑后,用SqlDataAdapter的Update方法批量提交:SqlCommandBuilder cb = new SqlCommandBuilder(da); da.Update(dt); 轻松实现数据管理。

FAQ
Q: 如何处理连接超时?
A: 在连接字符串中添加Connect Timeout=30;
Q: DataGridView加载慢怎么办?
A: 使用虚拟模式或分页查询,只加载当前页数据。
Q: 如何添加搜索功能?
A: 在查询SQL中加入WHERE条件,并绑定TextBox的TextChanged事件实时查询。
Q: 支持Excel导出吗?
A: 是的,用EPPlus或直接DataTable.WriteToExcel()。