【笔记】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()

{

//打开数据连接。

}

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。