.NET-创建虚拟表,将 SQL 表中的数据导入虚拟表

ylbtech-.NetFramework:.NET-创建虚拟表,将 SQL 表中的数据导入虚拟表
技术与环境
操作系统: windows 语言类别: C#
thankyou: sunshine, 谢谢你的默默付出 课题: 虚拟表
学习软件: Microsoft Visaul Studio 2010
1.A,Console-创建虚拟表 返回顶部
View Code
using System;
using System.Collections.Generic;
using System.Text;

using System.Data;
//编号    姓名    性别     年龄     成绩 
//1001    mike     男       21      98.5
//1002    张三     男       33      68.5
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //步骤:
            //1,创建虚拟表
            System.Data.DataTable dt = new DataTable("student");

            //2,创建列,5列
            System.Data.DataColumn dc1 = new DataColumn("编号", typeof(int));
            System.Data.DataColumn dc2 = new DataColumn("姓名", typeof(string));
            System.Data.DataColumn dc3 = new DataColumn("性别", typeof(string));
            System.Data.DataColumn dc4 = new DataColumn("年龄", typeof(int));
            System.Data.DataColumn dc5 = new DataColumn("成绩", typeof(double));

            //3,将列并入表,实现其组织结构
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            dt.Columns.Add(dc5);

            //4,创建行//1001    mike     男       21      98.5
            System.Data.DataRow dr1 = dt.NewRow();

            //5,给行中的单元格赋值
            dr1[0] = 1001;
            //dr1["编号"] = 1001;
            dr1[1] = "mike";
            //dr1["姓名"] = "mike";
            dr1[2] = "";
            dr1[3] = 21;
            dr1[4] = 98.5;

            //6,将行加入表格
            dt.Rows.Add(dr1);

            //添加第二行 //1002    张三     男       33      68.5
            System.Data.DataRow dr2 = dt.NewRow();
            dr2[0] = 1002;
            dr2[1] = "张三";
            dr2[2] = "";
            dr2[3] = 33;
            dr2[4] = 68.5;
            dt.Rows.Add(dr2);

            //表格实现。


            //7,遍历表格
            //用户只有dt
            //输出表头
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.Write(dt.Columns[i].ColumnName + "\t");
            }
            Console.WriteLine();

            //输出表体
            for (int i = 0; i < dt.Rows.Count; i++)//循环行
            {
                for (int j = 0; j < dt.Columns.Count; j++)//循环列
                {
                    Console.Write(dt.Rows[i][j] + "\t");
                }
                Console.WriteLine();//一行一个回车
            }

            //8,补充,DataSet--虚拟库,可以包含多个表
            DataSet ds = new DataSet("学校数据库");
            //将表加入库
            ds.Tables.Add(dt);

            //将表从库中提取
            System.Data.DataTable dt2 = ds.Tables[0];


            Console.Read();

            
        }
    }
}
1.B,Console-将 SQL 表中的数据导入虚拟表 返回顶部

1.B.1,XX/DBConnection.cs

View Code
using System;
using System.Collections.Generic;
using System.Text;

using System.Data.SqlClient;
namespace Com.Myt.DB
{
    public class DBConnection
    {
        SqlConnection con = null;

        public SqlConnection Con
        {
            get { return con; }
            set { con = value; }
        }

        public DBConnection()
        {
            con = new SqlConnection();
            con.ConnectionString = "server=.;database=northwind;integrated security=sspi";
        }
    }
}

1.B.2,XX/Program.cs

View Code
using System;
using System.Collections.Generic;
using System.Text;

using System.Data.SqlClient;
namespace Com.Myt.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            //将 select productid,productname,categoryid,unitprice from products 运行结果导入虚拟表
            string sql="select productid,productname,categoryid,unitprice from products";

            System.Data.DataTable dt = new System.Data.DataTable();

            SqlConnection con = new Com.Myt.DB.DBConnection().Con;
            SqlCommand com = new SqlCommand();
            com.Connection = con;
            com.CommandText = sql;

            con.Open();

            SqlDataReader sdr = com.ExecuteReader();

            //重要
            dt.Load(sdr);//将sdr中的数据以数据库表的原始架构导入到dt中去

            con.Close();//此处con连接关闭,则sdr不能再使用。但是dt中的数据依然存在,可以继续使用,称之为脱机记录集 

            //遍历虚拟表
            //输出表头
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.Write(dt.Columns[i].ColumnName + "\t");
            }
            Console.WriteLine();
            //输出表体
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    Console.Write(dt.Rows[i][j] + "\t");
                }
                Console.WriteLine();
            }

            Console.Read();

        }
    }
}
warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2013-02-26 10:25  ylbtech  阅读(2143)  评论(0编辑  收藏  举报