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.5namespace 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(); } }}
作者:出处:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |