【笔记】ADO.NET基础

数据库中数据的导入导出

  在使用一些数据库时,很多时候都要将文件导入导出到指定的文件夹中;

数据的导入导出就必须用到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()

{

//打开数据连接。

}

 

 

 

时间: 2024-11-02 07:00:30

【笔记】ADO.NET基础的相关文章

【笔记】ADO.NET基础学习

数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础      它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数据库,也可以在其中使用SQL语句,不需要在sql数据库中创建,这样用起来就特别方便,便于数据库的快速读取.<基于服务的数据库>        在VS中创建的mdf和数据库中的一样,它跟随着项目走,用起来方便运行时会自动附加(Attach).打包时首先关闭mdf与数据库的连接,才行. {ado.ne

如鹏网学习笔记(六)ADO.Net基础

ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/executeQuery("select * from ...")类似的方法 2,ADO.Net是.Net中提供的标准访问数据库的接口,访问不同的DBMS的底层方法是不一样的,ADO.Net把访问数据库的方法进行了统一, 访问MYSql.Oracle.SqlServer等不同数据库的方法几乎是一样

.Net Core 系列:2、ADO.Net 基础

目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删除功能 8.实现文章回复功能 9.实现文章点赞功能 10.正式发布文章系统 1.前言 因为本系列是.NET Core 系列,本文中所有叙述的是基于.NET Core 1.1版本的数据访问层接口.为什么需要强调是.Net Core 1.1呢?由于在2017年Q3发布的.NET Core 2.0中通过官

加壳学习笔记(二)-汇编基础

7.简单的汇编语法:   堆栈平衡  PUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数 POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPAADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,

深入理解计算机系统读书笔记一 ---&gt; 计算机基础漫游

一.程序编译的不同阶段. 通常我们是以高级程序开发易于阅读的代码,我们通过语法规则推断代码的具体含义.但是计算机执行代码的时候就需要把代码解析成既定的可执行问题,计算机是如何处理的呢?这里以C语言hello.c文件为例来说明中间过程. #include <stdio.h> int main() { printf("hello world!\n"); } 先上张图. C语言源程序----预处理解析头文件和函数  --- 编译器解析成汇编语言 ---   翻译机器语言指令,打包

Ado.Net基础拾遗二:插入,更新,删除数据

插入数据 1 public void InsertDataToSQL() 2 { 3 string conStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 4 SqlConnection conn = new SqlConnection(conStr); 5 conn.Open(); 6 7 SqlCommand cmd = new SqlCommand

卷积神经网络(CNN)学习笔记1:基础入门

卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Views 概述 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的.CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

机器学习实战笔记1(机器学习基础)

1:如何选择合适的算法 2:python简介 (1)   python的优势:相对于matlab,matlab单个软件授权就要花费数千美元,也没有一个有影响力的大型开源项目.相对于c++/c/java,完成简单的操作就需要编写大量的代码:而如今我们应该花费更多的时间去处理数据内在的含义,而无需花费太多精力解决计算机如何得到数据结果(python简洁) (2)   python具有numpy科学函数库,它是一个使运算更容易.执行更迅速的库:另外还有matplotlib绘图工具. 3:python语

马哥Linux课程随堂笔记(操作系统基础01)

Linux课程笔记(操作系统基础)-20160822 第四层:应用程序(1.通过内核调用运行,2.调用库运行) 第三层:library:API(应用编程接口)库 只能被其他程序调用的时候才能执行,执行环境就是被调用 第二层:Kernerl:内核管理硬件资源 第一层:硬件 内核的功能: 1.进程管理 2.内存管理 3.文件系统 4.网络功能 5.硬件驱动 6.安全机制 GNU计划,又称革奴计划,是由RichardStallman在1983年9月27日公开发起的.它的目标是创建一套完全自由的操作系统