下面通过查询一个表来简单介绍下DataAdapter和DataSet对象
ADO.NET查询一系列数据,一般用到这几大对象:
Connection 连接对象
Command 执行对象
DataAdapter 适配器对象
DataSet 数据集
DataGridView的常用属性:
DataGridView1.AutoGenerateColumns=false; 不允许自动产生列(默认会将查询出来的所有列都选中)
AutoSizesColumnsMode=Fill; 列填充(默认将窗体展开右边会是空的)
SelectionMode=FullRowSelect 整行选中(光标默认只选中一个单元格)
RowHeaderVisible=False; 头列不显示(默认会自带一个空列)
用到的数据表:
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string connStr = "server=.;database=test1;integrated security=true";
private void Form1_Load(object sender, EventArgs e)
{
//***************************************************
//dataGridView控件一般会自动将所有查询出来的列显示出来(例如:这里我不想把备注列remark显示出来),这里有两种做法
//①修改sql语句
//string sql = "select stuid=编号,stuname 姓名 sex as 性别";//只查询这三列数据
//②设置dataGridView的属性
dataGridView1.AutoGenerateColumns = false;//不允许自动产生列
//***************************************************
//1.准备连接字符串
string sql = "select * from student";
//2.创建连接对象
SqlConnection conn = new SqlConnection(connStr);
//3.打开连接
conn.Open();//相当于点击了数据库登录时的那个连接按钮
//4.创建执行对象
SqlCommand cmd = new SqlCommand(sql, conn);
//--------------------------------------------------
//要处理多条数据时,用SqlDataAdapter
//SqlDataAdapter sda = new SqlDataAdapter();
//最常用的是查询命令sda.SelectCommand = cmd;
//还有新增命令sda.InsertCommand=...
//修改命令sda.UpdateCommand=...
//删除命令sda.DeleteCommand=...
//--------------------------------------------------
//5.创建适配器对象并指定命令为cmd
SqlDataAdapter sda = new SqlDataAdapter(cmd);//简写
//--------------------------------------------------
//DataTable dt=new DataTable();
//sda.Fill(dt);//可以填充一个数据表,但通常我们会使用DataSet数据集,可以存放多张表
//--------------------------------------------------
//6.创建一个数据集
DataSet ds=new DataSet();
//--------------------------------------------------
//sda.Fill(ds);
//DataTable dt = ds.Tables[0];//如果没有命别名就通过索引号来取表
//--------------------------------------------------
//7.执行命令并填充到DataSet中
sda.Fill(ds, "aa");//通常在填充的同时给这张表名一个别名aa,为了在序列化时不出错
DataTable dt = ds.Tables["aa"];
//8.关闭连接
conn.Close();
//显示数据这里我用DataGridView控件来显示
dataGridView1.DataSource = dt;
}
}
}
程序运行结果: