笔记:
1、数据集:DataSet ds = new DataSet(“name”);//括号内一般为空;
2、数据适配器:SqlDataApater dap = new SqlDataAdapter(sql,conn);其中sql为数据库查询语句字符串,conn为数据库连接对象;
3、dap.Fill(ds);//将查询语句填充到数据集中作为一个表格;
4、DataTable dt = ds.Tables[0];//将数据集中的某个确定表格dataTable表格中;
5、DataGridView控件中的Dock属性设置为Fill,让控件填满整个窗体;
6、DataGridView.DataSource = ds.Tables[0];在控件中显示整个查询结果表格;
7、dataGridView。AutoGenerateColumns = false;取消自动添加的没有查询的数据库表格中的其他列;
8、将AutoSizeColumnsMode属性设置为Fill;列表自动平分控件的空间;
9、将RowHeadersVisible属性设置为False;取消控件前的行标题;
10、将 SelectionMode 属性设置为FullrowSelect;选中任意一行的某个窗格则选中某一行;
11、DataView对象:DataView dv = new DataTable.DefautView;
DataView dv = new DataView(DataTable);
12、设置工具栏添加搜索功能和排序功能;
搜索:DataView对象.RowFilter = “过滤字符串(比如:Name like ‘%泽%’)”;
排序:DataView对象.Sort = “列名 desc|asc,列名 desc|asc”;
最后记得重置数据源:this.DataGridView.DataSource = dv;
尝试制作一个窗体:
降序排序后的表格:
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace T7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//创建 DataSet 对象
DataSet ds = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
//数据库连接字符串
string constr = "server = .; Integrated Security = true;";
//创建数据库连接对象
SqlConnection conn = new SqlConnection(constr);
//数据库查询语句
string sql = "select * from Table_user";
//创建 SqlDataAdapter 对象
SqlDataAdapter dap = new SqlDataAdapter(sql,conn);
//填充数据库表格
dap.Fill(ds);
//在 dataGridView 控件中显示查询后结果
dataGridView1.DataSource = ds.Tables[0];
//确保数据库连接通道关闭,控件解放
conn.Close();
conn.Dispose();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
//搜索关键字
string key = toolStripTextBox1.Text;
//创建dataView对象
DataView dv = ds.Tables[0].DefaultView;
//筛选后的表格
dv.RowFilter = string.Format("name like '%{0}%'",key);
//将筛选后的表格作为dataGridView的数据源
this.dataGridView1.DataSource = dv;
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
//创建dataView对象
DataView dv = ds.Tables[0].DefaultView;
//降序排序后的表格,如果想要实现升序排序只需将desc改为asc
dv.Sort = "phone desc";
//将排序后的表格作为dataGridView的数据源
this.dataGridView1.DataSource = dv;
}
}
}
总结:
dataSet与DataAdapter实现了脱离数据库存储里面的数据,再利用DataGridView控件在窗体中显示所有数据;利用dataView对象实现了数据的筛选和排序,实现了基本的数据操作。