• .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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    前台线程与后台线程,AfxGetApp>GetMainWnd()与AfxGetMainWnd的不同 (转)
    详细解说 STL 排序(Sort) (转)
    (转)怎样从一个DLL中导出一个C++类
    HTTP协议之状态码详解(转)
    关于列表(ListCtrl)控件的界面基础知识
    C++序列化(转)
    vs2008修改Menu(菜单)资源ID的方法。
    怎样解决VC中滚动条最大滚动值不能超过32767的问题
    < Photoshop CS 专栏 >颜色(二)
    C#使用BinaryReader类读取二进制文件
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2933077.html
Copyright © 2020-2023  润新知