ADO.NET基础01
数据库中数据的导入导出
在使用一些数据库时,很多时候都要将文件导入导出到指定的文件夹中;
数据的导入导出就必须用到stream函数,这就必须用到Using System.IO的命名空间;
**在数据库的连接问题上,不要每次都重新创建连接,因为它是非常耗时的;
eg one :
private void button1_Click(object sender, EventArgs e)
{
if (odfImport.ShowDialog() == DialogResult.OK)
{
using (FileStream fileStream = File.OpenRead(odfImport.FileName))
{
using (StreamReader streamReader = new StreamReader(fileStream))
{
string Line = null;
while ((Line = streamReader.ReadLine()) != null)
{
string[] strs = Line.Split(' ');
string name = strs[1];
int age = Convert.ToInt32(strs[2]);
string connection = "Data Sources=zhanghui; Initial Catalog=Ahui;User ID=sa;Pwd=111;";
using (SqlConnection conn = new SqlConnection(connection))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "Insert into T_User(Name,Age) values(@Name,@Age)";
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("Name", name));
cmd.Parameters.Add(new SqlParameter("Age", age));
cmd.ExecuteNonQuery();
}
}
}
}
}
}
MessageBox.Show(@"插入成功");
}
二:读取配置中的连接字符串
一:添加App.config文件
在资源管理器中的----引用中右键就可以添加------找到system.configuration
二:在app.config文件中添加
<configuration>
<add name=”ConStr”connectionString=”Data Source=zhanghui; Initial Catalog=Ahui; User ID=sa; Pwd=111”/>
</configuration>
三:在主函数中引用
string ConStr=configurationMangager.configurationString[“ConStr”].configurationString;
eg one:
//数据库连接字符串
string connString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
//string connString = "Data Source=zhanghui; Initial Catalog=Ahui; User ID=sa; Pwd=111";
//string connString = @"Data Source=(LocalDB) 11.0; AttachDbFilename=""D:\VS2008\Projects\ADO.NET\ado.net文件\Database1.mdf""; Integrated Security=True;User Instance=True";
//string con = @"Data Source=(LocalDB)\v11.0;AttachDbFilename='D:\VS2008\Projects\ADO.NET\ado.net 文件\Database1.mdf ';Integrated Security=True;User Instance=True";
//创建数据库连接
SqlConnection conn = new SqlConnection(connString);
//打开数据库
conn.Open();
Console.WriteLine("打开成功");
Console.ReadKey();
app.config文件
<connectionStrings>
<add name="ConStr" connectionString="Data Source=zhanghui; Initial Catalog=Ahui; User ID=sa; Password=111 "/>
</connectionStrings>

在程序中要学会使用配置文件,这样字程序就会变得很容易执行。
学习封装
//params 可变的参数,用其定义的变量的数是可变的,常用在多个数的传参的时候。
封装的意思就是将程序中经常用到的代码放在一个方法中,用的时候直接调用就行。
DataSet
每次读取数据都需要创建连接数据库,和麻烦,我们可以创建一个类,将其封装起来,用的时候直接调用就行。这样子就方便了很多。
SqlDataSet是连接相关的,SqlDataSet中的查询结果并不是放到程序中的,而是放在数据库的服务器上的,而这个SqlDataSet就相当于一个指针
只能读取当前指向的行,一担和数据库断开连接就不能再读取。{好处:无论读取的数据有多少条对于程序占用的内存几乎没有什么影响。
}
SqlDataAdapter是DataSet和数据库之间的连接的桥梁,数据集DataSet包含若干表DataTable,而DataTable里面包含若干行,DataRow。
eg:

当数据库开一定的时间,要重启一下,在使用。
对于数据库来说,连接是非常宝贵的资源,用完之后一定要dispose掉。
DataSet的更新
一:利用到了Update的修改,这样子就能修改到服务器里面的数据。
//下面的两个修改只是修改了本地内存中存储的数据,没能修改到服务器里面的数据。
row["UserName"] = "huoooo";
//修改服务器里面的数据,就要用到VS里面内置的"Update"来修改;
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(dataset);
MessageBox.Show("修改成功");
二:可空的数据类型
正确的表示:
string s1=null;
int i1=0;
错误的表示:int i2=null;
修改后的可空数据类型:int? i1=null;
int? i2=0;
// :int?—>可空的int,解决数据库和C#对于int是否可以为null的不同所设置。
三:弱类型的坏处
1:只能取出列名,而且只能在前台显示的时候看到。
2:取到的字段是object类型,要使用的话要进行类型转换。
3:数据绑定很麻烦,无法使用ASP.NET等快速开发工具。
四:DataSet的要点
1:这个数据集可以理解为一个简单的数据库,这个数据库在计算机内存中保存,可以对其进行修改,之后通过程序在将其更新到服务器中。【数据集是独立于任何数据库的】
2:【DataSet数据集】的作用是临时存储数据,【DataAdapter数据适配器】的作用是把数据集和服务器的数据进行替换,更新。
五:使用using语句
1:不用关闭数据库,using自动就关闭了,很方便。using语句容许程序员指定资源的对象应当何时释放资源,该语句定义了一个范围,在此结束时就将其释放。
using()
{
//打开数据连接。
}
ADO.NET基础01的更多相关文章
- ADO.NET基础01(ADO.NET组成,数据库的方式,SqlCommand,SqlDataReader)
什么是ADO.NET: ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSS ...
- javascript基础01
javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...
- ADO.NET基础03
数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础 它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...
- Androd核心基础01
Androd核心基础01包含的主要内容如下 Android版本简介 Android体系结构 JVM和DVM的区别 常见adb命令操作 Android工程目录结构 点击事件的四种形式 电话拨号器Demo ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- Linux基础01 学会使用命令帮助
Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题, ...
- 可满足性模块理论(SMT)基础 - 01 - 自动机和斯皮尔伯格算术
可满足性模块理论(SMT)基础 - 01 - 自动机和斯皮尔伯格算术 前言 如果,我们只给出一个数学问题的(比如一道数独题)约束条件,是否有程序可以自动求出一个解? 可满足性模理论(SMT - Sat ...
- .Net Core 系列:2、ADO.Net 基础
目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...
- LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配
#2003. 「SDOI2017」新生舞会 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...
随机推荐
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非 ...
- AWVS漏洞测试-03节-添加扫描项目
http://localhost:9660 我们要扫描这个页面 点击左上角的New Scan,在Scan Single哪里输入要扫描的网站地址,可以是本地地址 然后选择下一步 Next 这里我们可以配 ...
- vlc android 移植版编译
同步发表于http://avenwu.net/2015/07/27/vlc-android-compiling 安装必备工具/解决环境问题 环境准备什么的如果没配置过需要一步步配置,主要是sdk/nd ...
- Go 若干技巧
此文来自 http://denvergophers.com/2013-09/tips-and-tricks.slide ###本文主要涉及到: 1. formatting 技巧 2. 异常处理技巧 3 ...
- 【WebMisCentral WMC】基于Extjs 4.2x的企业级用户授权认证中心系统(SSO+AM+SM),多租户SAAS应用
http://saas.chinacloudtech.com 题记 三年磨一剑,在企业信息化的道路上已经走了3年之久了,3年多时间里做了很多,突破了很多:有无奈和辛酸,也有收货与喜悦:自我价值也在不断 ...
- Asp.net Core WebApi 支持json/xml格式的数据返回
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...
- [原创]android使用代码生成LayerDrawable的方法和注意事项
为了有更好的UI体验,一般我们会把button.textview等控件的背景设置上阴影.传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属 ...
- Windows内核安全与驱动开发
这篇是计算机中Windows Mobile/Symbian类的优质预售推荐<Windows内核安全与驱动开发>. 编辑推荐 本书适合计算机安全软件从业人员.计算机相关专业院校学生以及有一定 ...
- 【Cocos2d-Js基础教学(5)资源打包工具的使用及资源的异步加载处理】
TexturePacker是纹理资源打包工具,支持Cocos2dx的游戏资源打包. 如果用过的同学可以直接看下面的资源的异步加载处理 首先为什么用TexturePacker? 1,节省图片资源实际大小 ...
- Xcode8新特性和iOS10新特性
从 Xcode 8.0 开始,目前所有的插件都无法工作! NSLog 无法输出 -- 此bug等待正式版本... Xcode 提供了文档注释快捷键option + cmd + / 但是要把系统升级到1 ...