1. 程式人生 > >ADO.NET資料庫簡單操作

ADO.NET資料庫簡單操作

一、提交單條SQL語句

下面以一次資料庫插入為例
1.定義連線字串:Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin,如果是連線非本機的資料庫,在Server之後填寫IP地址,Server伺服器地址,DataBase資料庫名,Uid使用者名稱,Pwd密碼
2.建立連線物件 SqlConnection conn = new SqlConnection(connString);
3.開啟連線conn.Open();
4.編寫sql
5.建立Command物件,並封裝Connection和Sql語句SqlCommand cmd = new SqlCommand(sql, conn);

建立Command物件的方法很多這裡我們使用個人覺得比較簡便的方法
6.執行操作ExecuteNonQuery方法int result = cmd.ExecuteNonQuery(); result的值為受影響的行數
7.關閉連線conn.Close();

namespace ADO.NETDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //定義連線字串
            string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin"
; //建立連線物件 SqlConnection conn = new SqlConnection(connString); //開啟連線 conn.Open(); if(ConnectionState.Open == conn.State) { Console.WriteLine("Connection is Opened"); } //編寫Sql string
sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)"; sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7})"; sql = string.Format(sql, "呵呵", "男", "1990-09-12", 120225199609121213, 25, "15029635631", "天津", 1); //建立Command物件 SqlCommand cmd = new SqlCommand(sql, conn); //執行操作 int result = cmd.ExecuteNonQuery(); conn.Close(); if(ConnectionState.Closed == conn.State) { Console.WriteLine("Connection is Closed"); } if(result == 1) { Console.WriteLine("新增成功"); } else { Console.WriteLine("新增失敗"); } Console.ReadKey(); } } }

二、提交多條Sql語句
將多條sql語句中間通過分號連線“;”,例子如下

namespace ADO.NETDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //定義連線字串
            string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin";
            //建立連線物件
            SqlConnection conn = new SqlConnection(connString);
            //開啟連線
            conn.Open();
            if(ConnectionState.Open == conn.State)
            {
                Console.WriteLine("Connection is Opened");
            }
            //編寫Sql
            string sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)";
            sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7})";
            string sql1 = string.Format(sql, "呵呵1", "男", "1990-09-12", 120225199609101213, 25, "15029635631", "天津", 1);
            string sql2 = string.Format(sql, "呵呵2", "男", "1990-09-11", 120225199609111215, 25, "15029635651", "天津", 1);
            string sql3 = string.Format(sql, "呵呵3", "男", "1990-09-14", 120225199609121214, 25, "15029635631", "天津", 1);
            string Sql = sql1 + ";" + sql2 + ";" + sql3;
            //建立Command物件
            SqlCommand cmd = new SqlCommand(Sql, conn);
            //執行操作
            int result = cmd.ExecuteNonQuery();
            conn.Close();
            if(ConnectionState.Closed == conn.State)
            {
                Console.WriteLine("Connection is Closed");
            }
            if(result == 1)
            {
                Console.WriteLine("新增成功");
            }
            else
            {
                Console.WriteLine("新增失敗");
            }
            Console.ReadKey();
        }
    }
}

這樣通過分號連線後,我們通過斷點除錯可以看到當前的sql
這裡寫圖片描述

三、獲取標識列的值

在某些情景下我們可能需要拿到,新新增的記錄的id,這時候我們可以使用@@identity獲取。
1.首先在sql之後新增@@identity
2.使用ExecuteScalar()方法,這個方法可以同時執行insert和select object result = cmd.ExecuteScalar();ExecuteScalar方法的返回值是Object型
3.轉換型別取得標識列的值Convert.ToInt32(result)
程式碼如下:

namespace ADO.NETDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //定義連線字串
            string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin";
            //建立連線物件
            SqlConnection conn = new SqlConnection(connString);
            //開啟連線
            conn.Open();
            if(ConnectionState.Open == conn.State)
            {
                Console.WriteLine("Connection is Opened");
            }
            //編寫Sql
            string sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)";
            sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7});Select @@identity";
            string sql1 = string.Format(sql, "呵呵00", "男", "1990-09-12", 120225099109101210, 25, "15029635631", "天津", 1);
            //建立Command物件
            SqlCommand cmd = new SqlCommand(sql1, conn);
            //執行操作
            object result = cmd.ExecuteScalar();
            conn.Close();
            if(ConnectionState.Closed == conn.State)
            {
                Console.WriteLine("Connection is Closed");
            }
            Console.WriteLine($"新新增的學員編號為{Convert.ToInt32(result)}");
            Console.ReadKey();
        }
    }
}

結果這裡寫圖片描述

總結執行增刪改的步驟

  1. 建立Connection物件
  2. 組合sql語句insert、update、delete
  3. 建立Command物件,並封裝Connection和sql語句
  4. 開啟連線
  5. 執行ExecuteNonQuery()方法,返回受影響的行數
  6. 關閉連線