zoukankan      html  css  js  c++  java
  • 数据集问题

    一、手动创建一个数据集

     

    private void btnCreateSet_Click(object sender, EventArgs e)
            {
                //1.创建一个数据集
                DataSet ds = new DataSet();
                //2.创建一张表
                DataTable dt = new DataTable("temp");
                //3.创建一张表,需要先创建出表的架构--列集合,所以得先创建出一列,再创建出其它列
                DataColumn c1 = new DataColumn("Id", typeof(int));
                c1.AutoIncrement = true;
                c1.AutoIncrementSeed = 1;
                c1.AutoIncrementStep = 1;
                //4.将创建好的列添加到表的列集合
                dt.Columns.Add(c1);
                //再创建一列
                DataColumn c2 = new DataColumn("Name",typeof(string));
                c2.AllowDBNull = false;
                c2.Unique = true;
                dt.Columns.Add(c2);
                //5.表的架构做完,应该为表添加数据行 ,数据行为什么不能new,因为行的数据添加必须依赖表的架构
                DataRow row = dt.NewRow();//创建一个与当前表相同架构的新行;
                //为行添加值
                //row["Id"] = 标识列不能赋值;
                row[1] = "aa";
                //6.将创建的行添加到行集合
                dt.Rows.Add(row);
                DataRow row2 = dt.NewRow();
                row2["name"] = "bb";
                dt.Rows.Add(row2);
                //7将生成的表添加到数据集中
                ds.Tables.Add(dt);
                //指定数据源,可以直接指定生成的表
                this.dataGridView1.DataSource = dt;
                //也可以指定数据集中的表
                this.dataGridView1.DataSource = ds.Tables[0];
            }

    二、使用数据读取器读取到数据集

      private void btnGet_Click(object sender, EventArgs e)
            {
                //1.创建数据集
                DataSet ds = new DataSet();
                //2.创建数据表
                DataTable dt = new DataTable("Grade");
                //3.创建表的架构--列
                DataColumn c1 = new DataColumn("ClassId",typeof(int));
                DataColumn c2 = new DataColumn("ClassName",typeof(string));
                //4.将创建的列添加到表的架构
                dt.Columns.Add(c1);
                dt.Columns.Add(c2);
                //5.使用数据读取器读取数据到数据行
                using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True"))
                {
                    conn.Open();
                    string sql = "select classid,classname from grade";
                    SqlCommand command = new SqlCommand(sql,conn);
                    SqlDataReader reader = command.ExecuteReader();
                    while(reader.Read())
                    {
                        //每一次读取一行,就生成一个表的新行,添加到数据表中
                        DataRow row = dt.NewRow();
                        row[0] = reader[0];
                        row[1] = reader[1];
                        //将生成的行添加到表的行集合中
                        dt.Rows.Add(row);
                    }
                }
                //将生成的表添加到数据集中
                ds.Tables.Add(dt);
                //指定数据源
                this.dgvGrade.DataSource=ds.Tables["Grade"];
            }

    三、使用数据适配器读取数据

     void LoadData()
            {
                //创建一个用来存储使用适配器运送回来的数据的表
                dt = new DataTable();
                DataSet ds = new DataSet();
                //ds.Tables.Add(dt);
                //需要获取的数据
                string sql = "select * from grade;select * from student";
                string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True";
                //创建数据适配器对象,这个对象就相当于现实生活中的  车,它可以帮助你运送数据到客户端,当然也能运送数据从客户端返回到服务器
                da = new SqlDataAdapter(sql, connStr);
                //适配器就会根据用户的需要从服务器中获取相应的数据,返回到用户指定的数据表或者数据集中
                da.Fill(ds);
                //指定数据源
                this.dgvStudents.DataSource = ds.Tables[1];
            }

  • 相关阅读:
    C#中处理鼠标和键盘的事件
    C#中处理鼠标和键盘的事件
    C#中处理鼠标和键盘的事件
    mpich2安装
    算法题推箱子
    LINUX终端下windows盘的位置
    Linux头文件和库文件添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
    第九章顺序容器重学C++之《 C++ PRIMER》
    sed中使用变量
    抛出异常
  • 原文地址:https://www.cnblogs.com/pengJk/p/6347275.html
Copyright © 2011-2022 走看看