第7章 Windows数据显示控件

7.1 数据集 DataSet 

DataSet包含一个或多个DataTable对象的集合

DataSet对象用于缓存从数据检索的数据


打开数据库的另外一种方法





数据集中包含一个或多个数据表datatable

dataset 相当于一个小的数据库 huawei

所有的数据表构成表集合 datatablecollection

dataset工作原理

dataset ds =new dataset();

int index=0;

7.2 数据适配器 DataAdapter 

属性:EmptyResult   不返回任何数据

方法:update: 将dataset中的数据返回到数据库中


ds.tables[0].row[0][0]

第一个0:第一个表

第二个0:第一行

第三个0:第一列


7.3 DataGridView控件



7.4 DataView 对象筛选和排序数据 

dataview是一张datatable 的虚拟表,主要用来显示数据,其实数据的更改都是发生在datatable中

dataview 是ds.tables[0]的影子


rowfilter:

sort:排序


创建DataView对象

DataView dv=new DataView(DataTable)

或者是

DataView dv=DataTable.DefaultView


//创建数据集对象

        DataSet ds = new DataSet();

//连接字符串(在加载事件中)

            string connstring = "server=.;initial catalog=GameBoxDB;integrated security=true";

//取消dataGridView生成列

            dataGridView1.AutoGenerateColumns = false;

//设置dataGridView数据源

            dataGridView1.DataSource = ds.Tables[0];

DataView dv = ds.Tables[0].DefaultView;

            dataGridView1.DataSource = dv;


1.创建dataset对象,保存查询结果数据

dataset ds=new dataset();

2.当前显示产品记录的索引

int index=0;

3.自定义方法,实现连接数据库并使用适配器向数据集中填充数据

private void conndatabase(){

4.创建连接字符串

string connstring =“server=.; database=huawei;(或者是:initial catalog=huawei); integrated securtity=true”

5.定义查询数据库的SQL语句

string sql=" 里面放SQL语句";

6.定义dataadapter对象

sqldataadapter dap=new sqldataadapter (sql,conn);

7.填充数据

dap.fill(ds);

8.关闭连接对象

conn.close();

9.释放连接对象

conn.dispose();

}

10.自定义方法,实现将datatable 加载到文本框等控件并显示数据

private void showproduct()

{

datatable dt=ds.tables[0];(先从数据集ds中获取保存数据的数据表,因为只查询了一个表的数据,所以索引为0)


}





using System;

using System.Data;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace studentquiz

{

    public partial class Form2 : Form

    {

        string connstring = "server=.;database=huawei;integrated security=true ";

        DataSet ds = new DataSet();

        SqlDataAdapter dap;

        int index = 0;

        public Form2()

        {

            InitializeComponent();

        }

        private void Label1_Click(object sender, EventArgs e)

        {

        }

        private void Txtname_TextChanged(object sender, EventArgs e)

        {

        }

        private void Label2_Click(object sender, EventArgs e)

        {

        }

        private void Txtage_TextChanged(object sender, EventArgs e)

        {

        }

        private void Form2_Load(object sender, EventArgs e)

        {

            SqlConnection conn = new SqlConnection(connstring);

            dap = new SqlDataAdapter("select * from student",conn);

            dap.Fill(ds);

            dataGridView1.DataSource = ds.Tables[0];

            txtname.Text = ds.Tables[0].Rows[index][0].ToString();

            txtage.Text = ds.Tables[0].Rows[index][1].ToString();

            conn.Close();

            conn.Dispose();

        }

        private void Button2_Click(object sender, EventArgs e)

        {

            index++;

            txtname.Text = ds.Tables[0].Rows[index][0].ToString();

            txtage.Text = ds.Tables[0].Rows[index][1].ToString();

        }

        private void Button1_Click(object sender, EventArgs e)

        {

            index--;

            txtname.Text = ds.Tables[0].Rows[index][0].ToString();

            txtage.Text = ds.Tables[0].Rows[index][1].ToString();

            if (index==0)

            {

            }

        }

        private void Button3_Click(object sender, EventArgs e)

        {

            DataView dv = ds.Tables[0].DefaultView;

            string name = txtsearch.Text;

            dv.RowFilter = string.Format("name like '%{0}%'",name);

            dataGridView1.DataSource = dv;

        }

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容