【笔记】ADO.NET基础学习

数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录。

ADO.NET基础

     它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口。

在VS中也可以添加数据库,也可以在其中使用SQL语句,不需要在sql数据库中创建,这样用起来就特别方便,便于数据库的快速读取。<基于服务的数据库> 

      在VS中创建的mdf和数据库中的一样,它跟随着项目走,用起来方便运行时会自动附加(Attach)。打包时首先关闭mdf与数据库的连接,才行。

{ado.net提供两个组件可以使得程序访问和处理数据  1:.NET Framework数据提供程序和DataSet(数据集)

其中.NET Framework数据提供程序是专门为数据处理,以及快速的只进,只读访问数据设计的组件,使用其可以连接到数据库,执行命令和检索结果,直接对数据库进行操作等。而DataSet则是专门为独立于任何数据源而设计的,使用其可以不直接与数据库打交道,可以大批的处理数据,也可以将数据绑定在控件上面。

   【现在运行的SQL数据库在VS中就得使用System.Data.SqlClient命名空间代码】

**.NET Framework数据提供程序的4个核心对象

         1:Connection对象  用于与特定数据源的联系。

         2:Command对象   用于对数据源执行命令。

         3:DataReader对象  用于从数据源中读取只进且只读的数据源。

         4:DataAdapter对象 用于用数据源填充DataSet并解析更新。

连接SQL Server

   程序通过在vs的服务器资源管理器来连接SQL数据库的信息。示例如下

一: 视图----服务器资源管理器

二:服务器资源管理器------右键-----添加连接 [在选择如下图到---------添加连接窗口]示例如下

三:添加连接------执行下面的步骤(切记一定要先测试,还有本地的服务器名为:‘.’或者为:‘local’)

四:这样就在右边的服务器资源管理器中可以找到自己要添加的数据库啦。

代码访问到SQL

在vs代码中操作数据库表中的数据,我们可以通过下面的代码来进行;

首先创建个控制台程序的项目,我们在其中加入如下的代码。

连接数据库的三步骤  [一二部可以交换]

   1:定义连接字符串。{不同的数据库的连接字符串的格式有所不同}。

    “sql数据库的格式”

    string  connString= Data Source=服务器名;Initial Catalog=数据库名;User ID=用户名;Pwd=密码;

   2:创建Connection对象,使用定义好的连接字符串来创建Connection对象。

    SqlConnection connection=new SqlConnection(connString);

3:打开数据库的连接。调用Conncection对象的Open()方法打开数据库连接

    connection.open();

到这里数据库就算是连接成功了,下来我们就可以进行对数据库的操作了。

eg :

static void Main(string[] args)
  {
      //数据库连接字符串
      string connString = "Data Source=zhanghui;  Initial Catalog=Ahui;  User ID=sa; Pwd=111";
      //创建数据库连接
      SqlConnection conn=new SqlConnection(connString);
      //打开数据库
      conn.Open();
      Console.WriteLine("打开成功");
      Console.ReadKey();

 

认识Command对象

建立数据库连接,打开数据库后,操作数据库就用到了Commamd对象(Command:命令),使用Command对象可以对数据库执行增删改查的命令。

要使用Command对象,必须有一个可用的Command对象

Command的四步骤

1:创建数据库连接

2:定义执行的SQL语句,需要将对数据库执行的SQL语句赋值给一个字符串。

3:创建Command对象,使用已有的Connection和SQL语句字符串来创建Command对象。

4:执行SQL语句。调用Command对象的某个命令来执行命令。

eg  one  :

private void btnConnection_Click(object sender, EventArgs e)
{
    //数据库连接字符串
    string connString = "Data Source=zhanghui;Initial Catalog=Ahui;User ID=sa;Pwd=111";
    //创建数据库的连接
    SqlConnection connection = new SqlConnection(connString);
   //打开数据库
     connection.Open();
   //使用command对象可以对数据库执行增删改查的命令。   
    using (SqlCommand cmd=connection.CreateCommand())       //CreateParameter为创建SqlParameter对象的新实例。
        {
            cmd.CommandText = "Insert into Student(Name,Age,Gender,Math,Chinese) values(‘abc‘,18,‘女‘,100,‘日本‘)";

                                                          //CommandText:获取或设置要对数据源执行的Transact-SQL语句或存储过程
            cmd.ExecuteNonQuery();            //对Connection执行Transant-SQL语句并返回受影响的行数。
            MessageBox.Show("插入成功");
        }
   
         MessageBox.Show("成功");


eg two:

在一个表中插入数据。之后显示插入成功。

eg:

Console.WriteLine("请输入用户名");
string username = Console.ReadLine();
Console.WriteLine("请输入密码");
string password = Console.ReadLine();
//数据库连接字符串
string connString = "Data Source=zhanghui;  Initial Catalog=Ahui; User ID=sa;Pwd=111";
//创建数据库连接
SqlConnection conn = new SqlConnection(connString);
conn.Open();                     //打开数据库;
using (SqlCommand ked = conn.CreateCommand())
{
    ked.CommandText = "Insert into Student(Name,Age)    values(‘  " + username + "  ‘, ‘  " + password + "  ‘)";
    ked.ExecuteNonQuery();
    Console.WriteLine("插入成功");
}
Console.WriteLine("打开数据库连接成功");
Console.ReadKey();

eg three:

在前台显示数据库中的数据。

eg:


string connString = "Data source=zhanghui;  Initial Catalog=Ahui;  User ID=sa;  Pwd=111";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
using (SqlCommand ka = conn.CreateCommand())
{
    ka.CommandText = "select * from Student";
    using (SqlDataReader reader = ka.ExecuteReader())
    {
        while (reader.Read())
        {
            //  int kk = Convert.ToInt32(reader.GetInt32(1));

            Console.WriteLine(reader.GetString(reader.GetOrdinal("Name")));
        }
    }

}
Console.WriteLine("ok");
Console.ReadKey();

今天就记录到这,明天继续,加油。终有一天会成为大神。


 

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