原文链接:https://blog.csdn.net/zhang_hui_cs/article/details/7327395

using System.Data;

using System.Data.SqlClient;

//SqlDataAdapter的MSDN网站:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.aspx

//DataTable的MSDN网站:http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx

//DataSet的MSDN网站: http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx

//DataSets, DataTables, and DataViews (ADO.NET): http://msdn.microsoft.com/en-us/library/ss7fbaez.aspx

namespace Chapter13

{

class FilterSort

{

static void Main(string[] args)

{

// connection string

string connString = @"

server = .;

integrated security = true;

database = northwind

";

// query 1

string sql1 = @" select      *    from    customers   ; ";

// query 2

string sql2 = @"     select    *   from   products   where     unitprice < 10    ";

// combine queries

string sql = sql1 + sql2;

// create connection

SqlConnection conn = null;

try

{

conn = new SqlConnection(connString);

// create data adapter

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

// create and fill data set

DataSet ds = new DataSet();

/*

* 如果SqlDataAdapter对应的sql语句返回多个数据集,

* 则SqlDataAdapter对应的DataTable名

* 会被依次命名为"Table", "Table1","Table2"……

* 如下调用得到的将会把"Table"对应着"Customers",

* "Table1"对应着"Products"

*/

da.TableMappings.Add("Table", "Customers");

da.TableMappings.Add("Table1", "Products");

da.Fill(ds);

// get the data tables collection

DataTableCollection dtc = ds.Tables;

//输出DataTableCollection中所有表的表名。

System.Console.WriteLine("DataTable in the DataTableCollection: ");

foreach (DataTable dt in dtc)

{

System.Console.WriteLine("\t{0}", dt.ToString());

}

// display data from first data table

//

// display output header

System.Console.WriteLine("Results from Customers table:");

System.Console.WriteLine(

"CompanyName".PadRight(20) +

"ContactName".PadLeft(23) + "\n");

// set display filter

string fl = "country = 'Germany'";

// set sort

string srt = "companyname asc";

foreach (DataRow row in dtc["Customers"].Select(fl, srt))   //  dtc["Customers"] 是DataTable , 看为内存的一张数据库表 , 按照条件+排序查询

{

System.Console.WriteLine(

"{0}\t{1}",

row["CompanyName"].ToString().PadRight(25),

row["ContactName"]);

}

// display data from second data table

//

// display output header

System.Console.WriteLine("\n----------------------------");

System.Console.WriteLine("Results from Products table:");

System.Console.WriteLine(

"ProductName".PadRight(20) +

"UnitPrice".PadLeft(21) + "\n");

//下句中dtc["Products"]中还可以按照表索引值访问,等价于dtc[1]

foreach (DataRow row in dtc["Products"].Rows)

{

System.Console.WriteLine("{0}\t{1}",

row["productname"].ToString().PadRight(25),

row["unitprice"]);

}

}

catch (System.Exception e)

{

System.Console.WriteLine("Error: " + e);

}

finally

{

// close connection

conn.Close();

}

}

}

}

SqlDataAdapter、DataSet、DataTable使用的更多相关文章

  1. sqldataAdapter/dataset/datatable的使用

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Loa ...

  2. C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...

  3. ADO.NET基础知识学习(SQLCOnnection&SQLCommand&SQLDataReader&SQLDataAdapter&DataSet)

    通过ADO.NET技术,我们可以高效的完成客户端同数据库之间的数据访问操作,便于我们在客户端程序简便高效的访问以及获取数据库中的有用数据,同时也可以对数据库中的数据进行更新,即可以完成客户端与数据库之 ...

  4. 手写DataSet,DataTable

    一:DataSet DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable();//创建一个DataTalbe dt.C ...

  5. DataSet DataTable操作

    DataSet ds = new DataSet();            DataTable dt = new DataTable("OrderList");          ...

  6. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)

    点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...

  7. DataSet,DataTable,DataColumn,DataRow的常用操作

    DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...

  8. 【C#-批量插入数据到数据库】DataTable数据批量插入数据的库三种方法:SqlCommand.EcecuteNonQurery(),SqlDataAdapter.Update(DataTable) ,SqlBulkCopy.WriteToServer(Datatable)

    第一种方法:使用SqlCommand.EcecuteNonQurery()  效率最慢 第二种方法:使用SqlDataAdapter.Update(DataTable)   效率次之 第三种方法:使用 ...

  9. DataSet,DataTable排序(转载)

    DataSet,DataTable排序   关于对已经绑定的DataSet的排序的问题: DataSet ds=new DataSet();DataView dv=new DataView();dv. ...

  10. 使用DataSet Datatable 更新数据库的三种方式

    1:自动生成命令的条件 CommandBuilder 方法a)动态指定 SelectCommand 属性b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteC ...

随机推荐

  1. 对主定理(Master Theorem)的理解

    前言 虽说在学OI的时候学到了非常多的有递归结构的算法或方法,也很清楚他们的复杂度,但更多时候只是能够大概脑补这些方法为什么是这个复杂度,而从未从定理的角度去严格证明他们.因此借着这个机会把主定理整个 ...

  2. OpenCV3.2.0+VS2015开发环境配置

    vs2015安装可参考:https://www.jianshu.com/p/391e67529bd3 OpenCV3.2.0配置可参考:https://www.jianshu.com/p/026093 ...

  3. Linux的常用命令---这是对Linux最基本的尊重

    Linux: 诞生日期:1991年 开发者:林纳斯·托瓦茨 特点:免费,开源 发行版本:centos|red Hat|Ubuntu|红旗等 思想:一切都是文件 重要文件目录 bin:二进制文件(命令) ...

  4. 推荐7个GitHub项目

    CS-Notes https://github.com/CyC2018/CS-Notes 技术面试必备基础知识.Leetcode.计算机操作系统.计算机网络.系统设计.Java.Python.C++. ...

  5. [CF1304C] Air Conditioner

    维护一区间 \([l,r]\) 人按照时间升序 考虑 \((l_i, h_i, t_i)\),当前的所有区间与这个区间取交 推到 \(t_{i+1}\) 时,所有区间的端点向两边扩张即可 注意把空掉的 ...

  6. RN开发-Android原生交互

    在使用RN开发过程中,难免有些原生功能需要要自己来实现,下面总结一下在使用RN与原生开发交互. 1.在原生代码中定义实现类 1.1  首先继承 ReactContextBaseJaveModule抽象 ...

  7. python3练习100题——037

    原题链接:http://www.runoob.com/python/python-exercise-example37.html 题目:对10个数进行排序. 程序分析:可以利用选择法,即从后9个比较过 ...

  8. Codeforces Round #622 (Div. 2)C(单调栈,DP)

    构造出的结果一定是一个单峰/\这种样子的 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ...

  9. LED Decorative Light Supplier - LED Environmental Decorative Lighting Application

    Creating ambient lighting in the home can bridge the gap between the internal world and the outside ...

  10. [LOJ144] DFS 序 1 - DFS序 线段树

    为熟悉机房键盘而划水 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 4 ...