• 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();
  • 相关阅读:
    hdu1158Employment Planning
    hdu1244Max Sum Plus Plus Plus
    .net客户端根据url获取字符串及图片,并保存本地
    wpf 3d文字
    .NET json格式 使用Newtonsoft.Json.JsonConvert类 附读取文件方法
    c# 按钮点击(开启||置顶)全局变量
    WPF 分辨率自适应,获取当前系统分辨率+窗口当前坐标
    WPF 循环读取文件中实现进度条显示
    WPF摄像头拍照+选择是否保存
    WPF Image显示本地照片 判断选择删除
  • 原文地址:https://www.cnblogs.com/mango1997/p/13985490.html
Copyright © 2020-2023  润新知