原文链接: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. 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库Sysbench测试最佳实践

    引言 作为一名DBA,时常需要对某些数据库进行一些基准测试,进而掌握数据库的性能情况.本文就针对sysbench展开介绍,帮助大家了解sysbench的一般使用方法. ​ sysbench简介 什么是 ...

  2. go-web 获取get/post请求中的请求头和表单数据

    package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r * ...

  3. Ionic 使用 NFC

    Ionic 使用 NFC 哎哟喂,因为项目需要使用 Ionic 调用手机 NFC 功能,踩了好多坑,真的是,不过终于不负众望拿到了id.现在就记录一下我的步骤和踩过的坑! 步骤 我装的Ionic可能是 ...

  4. 根据ID选中

    var name = document.getElementsById("mainStack");

  5. solr 对于 关键字的特殊处理

    public static String transformMetachar(String input){      StringBuffer sb = new StringBuffer();     ...

  6. [POI2005]KOS-Dicing (最大流+二分)lg3425

    题面https://www.luogu.org/problemnew/show/P3425 题面说赢的最多的人最少赢几场,肯定是向二分的方向思考 建立源点向每一场比赛连容量为1的边,从每场比赛向参赛两 ...

  7. navicat连接mysql8.0+版本报错2059

    ERROR 2059 : Authentication plugin 'caching_sha2_password' cannot be loaded 问题: 连接Docker启动的mysql出现:E ...

  8. git上传代码技巧

    1.一定要先在git上面创建项目然后把文件拉到本地先 1.1克隆到本地(orgin=>'你的远程仓库地址') git clone orgin 1.2初始化项目文件夹 git init 2.操作之 ...

  9. 132. 分割回文串 II

    Q: 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回符合要求的最少分割次数. 示例: 输入: “aab” 输出: 1 解释: 进行一次分割就可将 s 分割成 [“aa”,“b ...

  10. 极客工具,PDF合并工具

    前言 这两天一番花两天的时间,重新用python和python图形化开发工具tkinter,完善了下PDF合并小工具,终于可以发布了. 工具目前基本功能已经完善,后期如果有反馈可以修复部分bug或完善 ...