首页 > 代码库 > ADO.NET之9-非连接模式,内存中的数据库DataSet,DataTable---ShinePans

ADO.NET之9-非连接模式,内存中的数据库DataSet,DataTable---ShinePans

DataSet被称作数据集,可以比作内存中的数据库,DataSet为ADO.NET核心,支持ADO.NET断开式,分布式数据方案的核心对象也是实现基于非连接的数据查询核心组件

DataTable常用属性:

属性说明
Columns获取属于该表的列的集合
Rows获取属于该表的行的集合
TableName获取或设置DataTable的名称

DataTable方法:

方法说明
AcceptChanges提交自上次调用AcceptChanges以来对该表进行的所有更改
Clear清除DataTable内的所有数据
NewRow创建与该表具有相同架构的新DataRow

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SQLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            ///连接数据库
            DataSet ds = new DataSet();  //创建数据库DataSet对象
            DataTable dt = new DataTable(); //创建数据库DataTable对象
            ds.Tables.Add(dt); //将数据表对象加入数据集对象集合中
            dt.Columns.Add("name", typeof(string));  //向DataTable中添加列
            dt.Columns.Add("address", typeof(string));//向DataTable中添加列
            DataRow dr = dt.NewRow();   //得到数据表,行对象
            dr[0] = "潘潘";
            dr[1] = "武汉";  //向行对象中添加数据
            dt.Rows.Add(dr);
            dt.Rows.Add(new object[] { "潘潘潘", "北京" }); //向数据行中添加新的对象
            foreach(DataRow v in dt.Rows)
            {
                Console.WriteLine("{0} {1}", v[0], v[1]);
            }
            string connection =
                "server=潘尚\\SQLEXPRESS;database=db_test;Trusted_Connection=true";
            SqlConnection sc = new SqlConnection(connection);
        //    sc.ConnectionString = connection;
            try
            {
                sc.Open();  //打开数据库连接
                Console.WriteLine("已经打开数据库连接!");
//START:5.导出数据库中的记录//////////////////////////////////////////////////////////
              /*  SqlCommand cmd = new SqlCommand("SELECT * FROM db_student", sc);
                SqlDataReader sdr = cmd.ExecuteReader(); //执行查找记录命令
                while(sdr.Read())
                {
                    Console.WriteLine("{0}{1}{2}{3}", sdr[0], sdr[1], sdr[2], sdr[3]);
                }  */
//END:5.导出数据库中的记录////////////////////////////////////////////////////////////
//START:4.查询数据库记录//////////////////////////////////////////////////////////////
              /*  SqlCommand cmd = new SqlCommand("SELECT count(*) FROM db_student", sc);
                int i = (int)cmd.ExecuteScalar();//执行查找记录的命令
                Console.WriteLine("表中共有{0}条数据", i.ToString());  */
//END:4.查询数据库记录////////////////////////////////////////////////////////////////
//START:3.修改数据库数据的代码////////////////////////////////////////////////////////
             /*   SqlCommand cmd = new SqlCommand("UPDATE db_student SET student_grade=99 where student_name=@name", sc);  //创建SqlCommand对象
                cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = http://www.mamicode.com/"潘";>

结果:



在未打开数据库连接之前,在内存中处理数据