C#之DataSet和DataTable 的介绍

1.DataSet是什么
DateSet在c#程序中建立一个临时数据库
下图所示:

 

概述    

可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?

    原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、删除、修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心数据库,这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。
    DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable。
    DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable  

    DataTable:数据表。  

DEMO1:  

SqlDataAdapter   da=new   SqlDataAdapter(cmd);  
DataTable   dt=new   DataTable();  
da.Fill(dt);

 直接把数据结果放到datatable中,  

DEMO2: 

SqlDataAdapter   da=new   SqlDataAdapter(cmd);  
DataSet   dt=new   DataSet();  
da.Fill(dt);  

数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]  
更常见的用法:

SqlDataAdapter   da=new   SqlDataAdapter(cmd);  
DataSet   dt=new   DataSet();  
da.Fill(dt,"table1");  

用的时候:这样取datatable:   dataset["table1"] 

或者:

SqlDataAdapter adapter = new SqlDataAdapter(strSql, _Connection);
adapter.Fill(dataSet);
return dataSet.Tables[0]

当adapter.Fill(dataSet);执行后,程序会通过SQL引擎返回一个结果集存放在内存中,这个结果集就是一个DataTable,并且这个DataTable会被添家到dataSet.Tables中,所以return dataSet.Tables[0],就是返回你所要查询的结果集

接收return:

DataTable table = db.GetDataTable(strSql);  
string rid = table.Rows[0]["rid"].ToString();

table.Rows[0]表示table的第一行数据,table.Rows[0]["rid"].ToString()表示table中列rid的值,table的所有列是你在SQL中所查询的所有列

遍历DataTable:

通过通用类,返回一个DataTable,要想显示每个单元格,只要做两次循环即可:

foreach (DataRow row in dt.Rows) 
{ foreach (DataColumn column in dt.Columns) { Console.WriteLine(row[column]); } 
}

row[column] 中的column是检索出来的表个列名。

如果想把某列的值拼接字符串,那就去掉内层循环就行了:

StringBuilder mailList = new StringBuilder(); 
foreach (DataRow row in dt.Rows) 
{ mailList.Append(row["Email"]); mailList.Append(";"); 
} 

向DataTable中手动添加行内容,并进行绑定、更新、排序

DataTable   dt   =   new   DataTable();
DataRow   dr;
dt.Columns.Add(new   DataColumn( "整数值 ",   typeof(Int32)));
dt.Columns.Add(new   DataColumn( "字符串值 ",   typeof(string)));
dt.Columns.Add(new   DataColumn( "日期时间值 ",   typeof(DateTime)));
dt.Columns.Add(new   DataColumn( "布尔值 ",   typeof(bool)));
for   (int   i   =   1;   i   <=   9;   i++)   {dr   =   dt.NewRow();dr[0]   =   i;dr[1]   =   "项   "   +   i.ToString();dr[2]   =   DateTime.Now;dr[3]   =   (i   %   2   !=   0)   ?   true   :   false;dt.Rows.Add(dr);                      
}
dataGrid1.DataSource   =   new   DataView(dt);
dataGrid1.DataBind();

更多的操作:
1.创建表及插入列 

DataTable dt=new DataTable();
dt.Colunmns.Add("Name",System.Type.GetType("System.String"));

2.插入行

DataRow newrow = dt.NewRow();
newrow[0]="aa";
dt.Rows.Add(newrow);

3.排序

DataView dv = dt.DefaultView; 
dv.Sort = "Name  Desc"; 
DataTable dt1 = dv.ToTable();

4.指定位置插入行

DataTable dt = new DataTable("表名");
DataRow dr = dt.NewRow();
dr[0]="安江联社户外模";
dr[1] = "555";
dr[2] = "200707";
dr[3] = "0.00";
dr[4] = "0.00";
dr[5] = "0.00";
dr[6] = "0.00";
dt.Rows.Add(dr);   //在最後插入行
dtb1.Rows.InsertAt(dr,j); //j为指定的行的位置插入;
dataGridView1.DataSource = dt;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38019.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python北京二手房房价数据集分析

本次分析的数据集来源为链家2017年房源信息。 在数据分析的过程中,我们也可以先去理解数据,再提出问题,在探索数据的过程当中,我们往往会发现很多有趣的事情~ 1.提出问题 北京二手房的房价跟哪些因素有关呢? 2.读取数据,理解数据 导入数据分析相关工具包 %matplotlib 为魔…

Python之爬取58同城在售楼盘房源信息

上一篇博客以爬取《你好&#xff0c;李焕英》豆瓣热门短评来作为爬虫入门小案例&#xff0c;这一篇博客主要以石家庄市为例&#xff0c;爬取58同城在售楼盘房源信息&#xff0c;主要包括以下字段&#xff1a;小区名称&#xff0c;所在区&#xff0c;地址以及均价等&#xff0c;…

成都二手房房价分析-数据挖掘

PricesDataAnalysis 本项目使用jupyter notebook开发&#xff0c;主要目的是分析成都二手房房价&#xff0c;项目地址。 数据&#xff1a;爬取二手房交易网站近期数据&#xff0c;成都各个区域交易热度较高的房屋信息。 爬虫项目地址 目标&#xff1a;分析成都各区域二手房市…

爬虫+数据分析:重庆买房吗?爬取重庆房价

现在结婚&#xff0c;女方一般要求城里有套房。要了解近些年的房价&#xff0c;首先就要获取网上的房价信息&#xff0c;今天以重庆链家网上出售的房价信息为例&#xff0c;将数据爬取下来分析。 爬虫部分 一.网址分析 https://cq.fang.lianjia.com/loupan/ 下面我们来分析我…

【大数据基础】厦门租房信息分析展示

https://dblab.xmu.edu.cn/blog/2307/ 实验部分 爬虫程序 首先在工程文件夹下创建名叫rentspider的Python文件。 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import csv# num表示记录序号 Url_head "http://fangzi.xmfish.com/web/searc…

Python数据分析基础 寻找出挂牌价最高的四套房,并输出相应的房源信息。

假设字典 house 存放了某小区在售二手房的房源信息&#xff08;见表 1&#xff09;&#xff0c; 试编写程序&#xff0c;实现以下功能&#xff1a; &#xff08;1&#xff09;请编写程序寻找出挂牌价最高的四套房和挂牌价最低的四套房&#xff0c;并输出相应的房源信息。 &am…

解决.net中使用gmail.com邮箱进行Smtp发送信件时失败的问题

我经常使用免费的gmail.com邮箱&#xff0c;因为它容量较大&#xff0c;但我们在使用.net编程实现邮件发送时&#xff0c;常会出现我们意想不到的错误。最常见的就是&#xff1a; &#xff08;1&#xff09;The operation has timed out. &#xff08;2&#xff09;出现类似提…

outlook登陆邮件接收服务器(POP3)失败问题

用outlook管理qq邮件时&#xff0c;可能会遇到无法登陆问题&#xff1a; 可能的错误之一是&#xff1a;在配置账号密码时&#xff0c;不是输入邮箱的登陆密码&#xff0c; 而是要输入qq邮箱中 提供的授权码&#xff1a; 这样问题即可解决&#xff01;

Contact form 7表单无法发送邮件的解决办法

在使用Bluehost主机做网站时&#xff0c;我们常常会遇到Contact form 7表单无法发送邮件的情况&#xff0c;收不到邮件&#xff0c;客户发的询盘就收不到&#xff0c;这就是很大的问题了。由于这个主机是自带邮箱系统的&#xff0c;因此我们用第三方的邮件系统就会出现被Blueho…

邮件服务器imap有推送吗,为什么我的邮件服务器支持imap协议还收不到邮件内容...

满意答案 qk2523 2017.04.05 采纳率&#xff1a;48% 等级&#xff1a;7 已帮助&#xff1a;163人 支持imap协议和能不能收到邮件没有什么关系。 1、使用Web方式可以正常接收邮件&#xff0c;但使用Outlook等客户端无法接收邮件。 a)邮件系统所在的服务器安装了其他杀毒软件&…

关于common-email 发送邮件失败问题!!!

1.首先说明一下场景&#xff1a; 邮件服务器为&#xff1a;腾讯的企业邮箱服务器&#xff0c; 有文档说明&#xff1a;http://service.exmail.qq.com/cgi-bin/help?id28&no1000585&subtype1&#xff0c; POP3/SMTP协议 接收邮件服务器&#xff1a;pop.exmail.qq.com …

邮件发送与接收,支持163邮箱、outlook邮箱、exchange邮箱

邮件发送与接收&#xff0c;支持163邮箱、outlook邮箱、exchange邮箱 收件箱支持条件搜索收件与发件均支持上传附件 依赖的jar包 邮件收发公共服务层实现 package com.example.demo.service.impl;import com.example.demo.model.EmailMessageBO; import com.example.demo.mo…

手把手教你设置foxmail客户端支持收发outlook.com邮箱里的邮件

话不多说&#xff0c;入正题啦1&#xff0c;下载安装foxmail客户端&#xff0c;也有免安装版的&#xff0c;这里不作介绍。地址&#xff1a;http://fox.foxmail.com.cn/2&#xff0c;打开foxmail软件&#xff0c;点击“工具”— 帐号管理 3&#xff0c;点击左下角的“新建”按钮…

举个栗子~Tableau 技巧(244):用和弦图(Chord diagram)呈现数据关系

关于和弦图 和弦图&#xff08;Chord diagram&#xff09;常用来表示数据之间的相互关系。数据点沿着圆圈分布&#xff0c;通过点和点之间相互连接的弧线来呈现相互之间的关系。和弦图从视觉上来说比较美观&#xff0c;数据呈现又很直观&#xff0c;所以深受数据粉喜爱。 之前…

HuggingGPT 火了:一个 ChatGPT 控制所有 AI 模型,自动帮人完成 AI 任务,网友:留口饭吃吧..._QbitAl 的博客 - CSDN 博客

转载自&#xff1a;https://blog.csdn.net/QbitAI/article/details/129942855 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 最强组合&#xff1a;HuggingFaceChatGPT —— HuggingGPT&#xff0c;它来了&#xff01; 只要给定一个 AI 任务&#xff0c;例如 “下面这张图片里…

“寻找贾维斯”简史

可能人人都希望自己有个“贾维斯”。 虽然已经退出漫威电影很多年&#xff0c;但是我们还是能够记起那个钢铁侠战衣里无所不能的AI助手。独特的幽默、优雅的语调&#xff0c;以及非常靠谱的人设&#xff0c;让无数科幻迷对这个看不见听得到的角色产生了无尽好感。 对贾维斯的…

jarvis贾维斯语音_保罗·贾维斯(Paul Jarvis)可以教给我们的建立业务的知识

jarvis贾维斯语音 想要在八到九个月内赚足够的钱&#xff0c;让您在一年中的剩余时间里做任何想做的事吗&#xff1f; (Want to make enough money in eight or nine months to last you for the rest of the year doing whatever the heck you want?) So do we. That’s why …

JARVIS(贾维斯)来了,科技改变生活

微软开源地址 https://github.com/microsoft/JARVIS 后续可能性&#xff1a; 每个人都有一个自己的AI助理提高生活便捷性学习知识的速度更快云助理 && 家用私人部署助理

谷歌拼音 输入法设置

谷歌拼音输入法 2.7&#xff0c;默认的是半角字符&#xff0c;中文标点 为了防止 以后 在输入代码的时候&#xff0c;出错&#xff0c;中文和 英文 都用 英文标点吧。