ADO.NET基础01

简介: 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>

021752234106478.png




学习封装



//params 可变的参数,用其定义的变量的数是可变的,常用在多个数的传参的时候。  

     
封装的意思就是将程序中经常用到的代码放在一个方法中,用的时候直接调用就行。


DataSet



 

每次读取数据都需要创建连接数据库,和麻烦,我们可以创建一个类,将其封装起来,用的时候直接调用就行。这样子就方便了很多。


SqlDataSet是连接相关的,SqlDataSet中的查询结果并不是放到程序中的,而是放在数据库的服务器上的,而这个SqlDataSet就相当于一个指针


只能读取当前指向的行,一担和数据库断开连接就不能再读取。{好处:无论读取的数据有多少条对于程序占用的内存几乎没有什么影响。

  SqlDataAdapter是DataSet和数据库之间的连接的桥梁,数据集DataSet包含若干表DataTable,而DataTable里面包含若干行,DataRow。

eg:

021752290516489.png

当数据库开一定的时间,要重启一下,在使用。


对于数据库来说,连接是非常宝贵的资源,用完之后一定要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=nulint? 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()
{
//打开数据连接。
}



目录
相关文章
|
SQL 数据库连接 数据处理
ADO.NET基础03
ADO.NET基础03
120 0
ADO.NET基础03
|
SQL 安全 数据库连接
ADO.NET基础02
ADO.NET基础02
179 0
ADO.NET基础02
|
SQL Oracle 关系型数据库
ADO.Net简介 140
  ADO.NET是.Net中一组类库,通过这组类库可以让我们通过程序的方式访问数据库中数据;之前学习的都是在数据库管理器中通过设计器或者SQL语句进行增删改查等操作数据库中的数据,对于普通用户不可能每个人都必须学习SQL,才能查看使用数据库,我们使用ADO.Net中的类库通过搭建比如窗体程序,使普通用户通过窗体上的按钮就可以很方便地操作和使用数据库中的数据,比如去买火车飞机等票时,窗口的出票员他们不可能每个人都去学习过SQL的知识后才能上岗,他们也是通过窗体或者网页方式查询使用数据库的数据的   ADO.NET中最重要的两个类:1)Connection用来连接数据库 2)Command用
117 0
|
SQL 安全 数据库
|
存储 大数据 程序员
|
缓存 数据库 数据格式
|
SQL 安全 索引
|
SQL Oracle 关系型数据库
|
SQL 存储 数据库连接
|
SQL 安全 数据库连接