zoukankan      html  css  js  c++  java
  • c#中的dataview数据视图的sort属性进行排序,用rowfilter属性进行筛选,完成学生档案信息的显示。

    (1)DataSet的使用方法

    1、创建DataSet对象

    DataSet ds = new DataSet();

    DataSet ds = new DataSet("DataSetName");

    2、用数据集填充DataSet

    最常用的是DataAdapter对象的Fill()方法给他填充数据

    (1)

    DataSet ds = new DataSet();

    SqlDataAdapter adapt = new SqlDataAdapter(sqlcmd,con)

    adapt.Fill(ds,"mytest");

    (2)

    DataSet ds=new DataSet();

    DataTable dt=new DataTable("newTable");

    ds.Tables.Add(dt);

    (3)

    DataSet ds=new DataSet();

    DataTable dt=ds.Tables.Add("newTable");

    3、访问DataSet中的表、行和列 值

    (1): 访问每个 DataTable

    按表名访问:ds.Tables["mytest"] //指定DataTable对象mytest(即访问DataSet中名为mytest的DataTable)

    按索引(索引基于0的)访问:ds.Tables[0] //指定DataSet中的第一个DataTable

    (2): 访问DataTable中的行

    ds.Tables["mytest"].Rows[n] //访问mytest表 的第n+1行(行的索引是从0开始的)

    ds.Tables[i].Rows[n] //访问DataSet中的第i+1个DataTable 的第n+1列(列的索引是从0开始的)

    (3): 访问DataTable中的某个元素

    ds.Tables["mytest"].Rows[n][m] //访问mytest表的第n+1行第m+1列的元素

    ds.Tables[i].Rows[n][m] //访问DataSet中的第i+1个DataTable 表的第n+1行第m+1列的元素

    ds.Tables["mytest"].Rows[n][name] //访问mytest表的第n+1行name列的元素

    ds.Tables[i].Rows[n][name] //访问DataSet中的第i+1个DataTable 表的第n+1行name列的元素

    (4): 取DataTable中的列名

    ds.Tables["mytest"].Columns[n] //取出mytest表的n+1列列名

    ds.Tables[i].Columns[n]

    (5)需要注意的是,在这里的展示数据列表的是datagridview,必须添加数据源,否则不会出现数据的。

    代码:

    sing 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 学生档案管理信息
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    private SqlConnection mySqlConnection;
    private SqlDataAdapter mySqlDataAdapter;
    private DataView myDataView;
    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: 这行代码将数据加载到表“xsglDataSet.student”中。您可以根据需要移动或删除它。
    this.studentTableAdapter.Fill(this.xsglDataSet.student);
    try {
    //SqlConnection表示一个到数据库的打开的连接
    mySqlConnection=new SqlConnection();
    //Initial Catalog=数据库名,Windows身份验证模式如下
    mySqlConnection.ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=xsgl;";
    /*
    可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,
    * 即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,
    * 由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,
    * 比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
    *
    *
    */
    DataSet myDataSet=new DataSet();//第一步创建dataset
    mySqlDataAdapter=new SqlDataAdapter("select * from student",mySqlConnection);//第二步用数据集填充DataSet,最常用的是DataAdapter对象的Fill()方法给他填充数据
    mySqlDataAdapter.Fill(myDataSet,"student");//最常用的是DataAdapter对象的Fill()方法给他填充数据
    myDataView=myDataSet.Tables["student"].DefaultView;//将数据表的默认视图指定给DataView对象。
    dataGridView1.DataSource=myDataView;


    }catch(Exception ee){
    System.Console.WriteLine(ee.Message);

    }

    }

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
    myDataView.Sort = "studAddress";//按照地址排序
    }

    private void radioButton2_CheckedChanged(object sender, EventArgs e)
    {
    myDataView.Sort = "enterScore";
    }

    private void button1_Click(object sender, EventArgs e)
    {
    myDataView.RowFilter = textBox1.Text;//按照输入的数据排序
    }
    }
    }

    使用方法

     

    1、创建DataSet对象

    DataSet ds = new DataSet();

    DataSet ds = new DataSet("DataSetName");

    2、用数据集填充DataSet

    最常用的是DataAdapter对象的Fill()方法给他填充数据

    (1)

    DataSet ds = new DataSet();

    SqlDataAdapter adapt = new SqlDataAdapter(sqlcmd,con)

    adapt.Fill(ds,"mytest");

    (2)

    DataSet ds=new DataSet();

    DataTable dt=new DataTable("newTable");

    ds.Tables.Add(dt);

    (3)

    DataSet ds=new DataSet();

    DataTable dt=ds.Tables.Add("newTable");

    3、访问DataSet中的表、行和列 值

    (1): 访问每个 DataTable

    按表名访问:ds.Tables["mytest"] //指定DataTable对象mytest(即访问DataSet中名为mytest的DataTable)

    按索引(索引基于0的)访问:ds.Tables[0] //指定DataSet中的第一个DataTable

    (2): 访问DataTable中的行

    ds.Tables["mytest"].Rows[n] //访问mytest表 的第n+1行(行的索引是从0开始的)

    ds.Tables[i].Rows[n] //访问DataSet中的第i+1个DataTable 的第n+1列(列的索引是从0开始的)

    (3): 访问DataTable中的某个元素

    ds.Tables["mytest"].Rows[n][m] //访问mytest表的第n+1行第m+1列的元素

    ds.Tables[i].Rows[n][m] //访问DataSet中的第i+1个DataTable 表的第n+1行第m+1列的元素

    ds.Tables["mytest"].Rows[n][name] //访问mytest表的第n+1行name列的元素

    ds.Tables[i].Rows[n][name] //访问DataSet中的第i+1个DataTable 表的第n+1行name列的元素

    (4): 取DataTable中的列名

    ds.Tables["mytest"].Columns[n] //取出mytest表的n+1列列名

    ds.Tables[i].Columns[n]

  • 相关阅读:
    DOS命令里面的EQ、NE、GT、LT、GE、LE分别是什么意思
    XCTF-ics-05(文件包含+preg_replace函数/e修正符下的代码执行漏洞)
    BUUCTF-[网鼎杯 2018]Fakebook(SSRF+联合注入绕Waf)
    [WesternCTF2018]shrine(SSTI+过滤)
    XCTF-simple unpack
    vulnhub-靶机Lampiao
    BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf)+[极客大挑战 2019]LoveSQL(联合注入)
    XCTF-open-source
    [CISCN2019 华北赛区 Day2 Web1]Hack World(二分法写布尔注入脚本)
    CTF中的序列化与反序列化
  • 原文地址:https://www.cnblogs.com/ljs-13/p/12126354.html
Copyright © 2011-2022 走看看