ADO.Net连接SQL Server

ADO.Net连接SQL Server

要与SQL Server连接,必须将SQL Server安装在系统中。现在使用Microsoft SQL Server管理工具来连接SQL Server。可以使用这个工具来处理数据库。现在,按照以下步骤连接SQL Server。

第1步:打开Microsoft SQL Server管理工具,它会提示进行数据库连接,提供服务器名称和身份验证。如下所示 -

连接成功后,显示如下窗口。如下所示 -

第2步:创建数据库

现在,通过选择数据库选项创建数据库,然后右键单击它。 它弹出一个选项菜单,并提供了几个选项。

点击新建数据库,然后它要求填写要创建数据库名称。 在这里,我们创建了一个名称为:student 的数据库。如下图所示 -

点击确定(Ok)按钮,它会创建一个数据库,可以在下面的截图中的左侧窗口看到如下所示。

第3步:建立连接并创建一个表

现在创建数据库之后,使用下面的C#代码创建一个表。在这个源代码中,使用创建的学生数据库进行连接。

在Visual Studio 2017中,我们创建了一个包含以下C#代码的.NET控制台应用程序项目(名称:AdoNetConsoleApplication) -

参考以下实现代码(Programe.cs) -

using System;
using System.Data.SqlClient;

namespace Programe
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().CreateTable();
        }
        public void CreateTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("create table student_info(id int not null,name varchar(100), email varchar(50), join_date date)", con);  
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();
                // Displaying a message  
                Console.WriteLine("Table created Successfully");
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

使用Ctrl + F5 执行此代码。执行完成后,它将显示一条消息给控制台,如下所示 -

也可以在Microsoft SQL Server Management Studio中看到创建的表。如下所示所示创建成功的表:student_info

可以看到,在这里有一张表:student_info。但此时,这张表是空的,所以需要插入一些数据。

第4步: 将数据插入到表中,参考以下实现代码(AdoNetInsert.cs) -

using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{
    class AdoNetInsert
    {
        static void Main(string[] args)
        {
            new AdoNetInsert().InsertTable();
        }
        public void InsertTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                String sql = "insert into student_info(id, name, email, join_date)values('101', 'Hiniu Su', 'hinew.su@example.com', '2017-11-18')";
                SqlCommand cm = new SqlCommand(sql, con); 
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();
                // Displaying a message  
                Console.WriteLine("插入数据记录成功~!");
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

使用Ctrl + F5 执行此代码。 执行完成后,它将显示一条消息给控制台,如下所示 -

第5步:查询/检索记录

在这里,将查询/检索上一步中插入的数据。参考下面的C#实现代码(AdoNetSelect.cs)-

using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{

    class AdoNetSelect
    {
        static void Main(string[] args)
        {
            new AdoNetSelect().SelectTable();
        }
        public void SelectTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("SELECT * FROM student_info", con);
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                SqlDataReader sdr = cm.ExecuteReader();
                Console.WriteLine("当前 student_info 表中的记录为:" );
                // Iterating Data  
                while (sdr.Read())
                {
                    Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]); // Displaying Record  
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong.\n" + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

通过Ctrl + F5 执行此代码,它将产生以下结果。这显示两条记录,一条是手动插入的数据记录。输出结果如下图所示:

第6步: 删除记录

经过前面5步,现在student_info表中有两个记录。以下C#代码从表中删除一行。参考代码 (AdoNetDelete.cs)-

using System;
using System.Collections.Generic;
using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{

    class AdoNetDelete
    {
        static void Main(string[] args)
        {
            new AdoNetDelete().DeleteFromTable();
        }
        public void DeleteFromTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("delete from student_info where id = '101'", con);
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();

                Console.WriteLine("已经成功地删除了编号为:101 的学生数据信息~!");

                // 重新查询数据库中的记录信息
                SqlCommand cm2 = new SqlCommand("SELECT * FROM student_info", con);
                // Executing the SQL query  
                SqlDataReader sdr = cm2.ExecuteReader();
                Console.WriteLine("当前 student_info 表中的记录为:");
                // Iterating Data  
                while (sdr.Read())
                {
                    Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]); // Displaying Record  
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong.\n" + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

通过Ctrl + F5 执行此代码,它将产生以下结果(ID是111的这一条已经被删除了,这里只显示编号为102的记录信息)。