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标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...
随机推荐
- spring整合activemq发送MQ消息[Topic模式]实例
Topic模式消息发送实例 1.pom引入 <dependency> <groupId>junit</groupId> <artifactId>juni ...
- Navi.Soft30.开放平台.腾讯.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- Pro ASP.NET MVC –第六章 MVC的基本工具
在本章,我们将介绍每个MVC程序员"武器库"的三个重要工具:依赖注入容器.单元测试框架和mock工具.在本书,对于三个工具分别都只用了一种方式实现,但每个工具都还有其他的实现方式. ...
- UE4在Android调用Project Tango
Project Tango应该说是Google一试水AR的设备,其中Project Tango主要二个功能,一个是获取深度信息,如MS的Kinect,有相当多的设备都有这个功能,二是第一人称相对定位, ...
- [原]quick2.25精灵变灰
由于quick2.25没有导出shader相应的接口,所以2.25无法直接使用shader. 本文简单介绍如何导出相应接口,同时教大家使用shader 实现精灵变灰 一.编写静态函数,以供导出使用(直 ...
- 深圳测试研讨会圆满结束,PPT共享
深圳测试研讨会圆满结束,PPT共享http://www.automationqa.com/forum.php?mod=viewthread&tid=3417&fromuid=29
- css中的position:relative和absolute 属性
语法: position : static | absolute | fixed | relative 取值: static :默认值.无特殊定位,对象遵循HTML定位规则 absolute :将对象 ...
- Unity 之 人物换装
http://www.cnblogs.com/mcwind/archive/2011/02/18/1957453.html 原理 一. SkinedMeshRender:该对象负责网格绘制.主要数据 ...
- 配置Pylint for Python3.5
事件的缘由是因为在Ubuntu16.04 下面安装了Visual Studio Code, 再编辑的时候说需要Pylint来检查语法,我系统的默认的Python 版本是python2,而我现在正在学习 ...
- sqlite3基础
要使用sqlite,首先需要添加库文件libsqlite3.dylib.当你搜索libsqlite3关键字时,会发现还有一个libsqlite3.0.dylib的库文件,这里还是建议添加libsqli ...