zoukankan      html  css  js  c++  java
  • C#学习补充之ado.net

    1.数据集DataSet
    2.利用DataTable对象获取数据(记录集)
    3.打开数据库获取数据

    1.数据集DataSet

    //创建一个内存的数据集
                DataSet ds =new DataSet("DS5");
    
                //创建一张内存表
                DataTable dt1 =new DataTable("dt1");
    
                //把表放到数据集里面去。
                ds.Tables.Add(dt1);
    
                //给表定义列
                DataColumn dcName = new DataColumn("Name",typeof(string));
                DataColumn dcAge = new DataColumn("Age",typeof(int));
                DataColumn dcId=new DataColumn("Id",typeof(int));
    
                //把列放到表里面去。
                dt1.Columns.AddRange(new DataColumn[]{dcId,dcName,dcAge});
    
                //给表添加数据
                dt1.Rows.Add(1, "老马", 18);
                dt1.Rows.Add(1, "赵黑", 29);
                dt1.Rows.Add(1, "老王", 18);
                dt1.Rows.Add(1, "老汪", 19);
                foreach(DataTable tb in ds.Tables)
                {
                    foreach (DataRow dataRow in tb.Rows)
                    {
                        Console.WriteLine(dataRow[0]+"  " +dataRow[1]+"  "+dataRow[2]);
                    }
                }

    2.利用DataTable对象获取数据(记录集)/*注意:如果DataTable获取记录,不用打开数据库,即Open()*/

    1)新建SqlConnection对象

    //第一步:新建SqlConnection对象

    string ConnStr = "Data Source=.;Initial Catalog=ADO_DEMO;Integrated Security=True"; SqlConnection SqlConn = new SqlConnection(); //设置SqlConnection对象的连接字符串; SqlConn.ConnectionString = ConnStr;

    2)新建SqlCommand对象

    //新建SqlCommand对象
                SqlCommand cmd_datatable = new SqlCommand();
    
                //设置SqlCommand对象的Connection属性,即:SqlConn(SqlConnection类型的对象)
                cmd_datatable.Connection = SqlConn;
    //如果是执行INSERT/UPDATE/DELETE的SQL语句,可以直接设置CommandText属性
                //如果是执行存储过程,则必须设置CommandType属性为CommandType.StoredProcedure
                cmd_datatable.CommandText = "SELECT * FROM Ex_Class";

    3)新建一个SqlDataAdapter对象

    //新建一个SqlDataAdapter对象,用来向DataTable填充数据
                SqlDataAdapter sda = new SqlDataAdapter();
    
                //设置SqlDataAdapter对象对应的SqlCommand对象
                sda.SelectCommand = cmd_datatable;

    4)新建一个DataTable对象

     //新建一个DataTable对象,用来接收SqlDataAdapter对象传递过来的数据
                DataTable dt = new DataTable();
    
                //调用SqlDataAdapter对象的Fill方法,将数据填充到DataTable
                sda.Fill(dt);

    5)使用DataTable中的数据

    //接下来可以使用DataTable中的数据,比如获取第一行的值:
                string MyClassName = Convert.ToString(dt.Rows[0]["ClassName"]);
                int MyClassCount = Convert.ToInt32(dt.Rows[0]["ClassCount"]);
    
                Response.Write(string.Format("DataTable返回一条记录:ClassName:{0} ClassCount:{1}<br><br>", MyClassName, MyClassCount));
    
                //也可以使用foreach遍历DataTable中的数据
                List<Model> DList = new List<Model>();
                foreach(DataRow dr in dt.Rows)
                {
                    Model Obj = new Model();
                    Obj.ClassName = Convert.ToString(dr["ClassName"]);
                    Obj.ClassCount = Convert.ToInt32(dr["ClassCount"]);
                    DList.Add(Obj);
    
                    //或者直接输出值
                    Response.Write(string.Format("DataTable返回多条记录:ClassName:{0} ClassCount:{1}<br><br>", dr["ClassName"], dr["ClassCount"]));
                }

    3.打开数据库获取数据

    1)创建连接对象SqlConnection

    //参数含义:
    //server(data source):要连接的数据库服务器的地址
    //user id:sql server身份验证的登录名
    //password:密码
    //database(initial catalog):使用的数据库
    string connString = @"server=.sql2012;userid=sa;password=123;database=StuDB"; 
    SqlConnection conn= new SqlConnection(connString);
    //打开连接
    conn.Open();

    2)创建Command对象

    SqlCommand cmd = new SqlCommand("select * from student", conn);

    3)调用Command对象的ExecuteReader()方法,返回一个DataReader对象

    SqlDataReader dr = cmd.ExecuteReader();

    4)判断DataReader对象是否包含数据行,如果没有数据行,返回false

    if (!dr.HasRows)
    {
    MessageBox.Show("没有查询您要的学员信息!");
    return;
    }

    5)通过DataReader对象读取每一行的数据,如果能读取到下一行,则返回true,如果读取结束,返回false

    while (dr.Read())
    {
    //通过DataReader对象[列的下标]获得指定列的值,返回object类型的值                    
    txtName.Text = dr[0].ToString();
    //通过DataReader对象[列的名称]获得指定列的值,返回object类型的值
    cmoSex.SelectedItem = dr["sex"];
    dtpBirthday.Value = (DateTime)dr["sbirthday"];
    txtEmail.Text = dr["semail"].ToString();
    txtId.Text = dr["sId"].ToString();
    comClass.SelectedValue = dr["classNo"];//设置班级下拉列表的选中项
    }

    6)关闭DataReader对象,关闭数据库连接

    dr.Close();
    conn.Close();
  • 相关阅读:
    DPDK安装方法 17.12.13
    numa.h:No such file or directory 解决方法
    17秋 软件工程 第六次作业 Beta冲刺 Scrum3
    17秋 软件工程 第六次作业 Beta冲刺 总结博客
    17秋 软件工程 第六次作业 Beta冲刺 Scrum2
    Paper Reviews and Presentations
    17秋 软件工程 第六次作业 Beta冲刺 Scrum1
    17秋 软件工程 第六次作业 Beta冲刺
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted
    17秋 软件工程 个人作业 软件产品案例分析
  • 原文地址:https://www.cnblogs.com/mango1997/p/13985490.html
Copyright © 2011-2022 走看看