zoukankan      html  css  js  c++  java
  • C# Ado.net

    ADO.NET
    ADO.NET是.NET數據庫的訪問架構,ADO.NET是數據庫應用程序和數據源之間的溝通的橋樑,提供一個面向對象的數據訪問架構,用來開發數據庫應用程序。提供對象,對象封裝了操作數據庫的方法
    組成:
    • .Net Framework數據提供程序
    • 數據集 DataSet
    ADO.NET結構
     

    五大類庫:

    Connection    用於建立與數據庫的鏈接
    Command    用於執行SQL語句 三個常用方法:
                ExecuteNonQuery  :用於增刪改,返回受影響的行數
                ExecuteReader:執行查詢,返回一個SqlDataReader對象
                ExecuteScalar:執行查詢,并返回首行首列
    DataReader    用於讀取數據
    DataAdapter    用於填充吧數據填充到DataSet
    DataSet    數據集 ,用於程序中
     
    程序訪問數據庫方法步驟
    ①創建一個到數據庫的鏈接--- >②打開數據庫鏈接--- > ③創建ADO記錄集--- > ④從記錄中提取需要的數據--- >⑤關閉記錄集--- >⑥關閉鏈接
     
    使用ADO.NET需要在程序中引用System.Data.SqlClient,其中包含了對Sql Server進行操作的數據訪問類
    • SqlConnection    鏈接數據庫
    • SqlCommand    數據庫命名對象
    • SqlCommandBuilder    生成SQL命令
    • SqlDataReader    數據讀取器
    • SqlDataAdapter    數據適配器 填充DataSet
    • SqlParameter    為存儲過程定義參數
    • SqlTransaction    數據庫事務
    class Program
        {
            static void Main(string[] args)
            {  
                //數據庫連接字符串
                string sql = "server =;database=TEST; user =; pwd=;";
                SqlConnection conn = new SqlConnection(sql); //創建連接實例化對象,連接數據源
                SqlCommand cmd = conn.CreateCommand();//數據庫操作類
    cmd.CommandText = "select *from SQL_T go delete from SQL_T where 姓名='Tom'"; //編寫數據庫語句
                conn.Open();  //打開數據庫連接,操作數據庫數據
                //DataReader數據讀取器,ExcuteReader 獲得數據
                SqlDataReader dr = cmd.ExecuteReader();//
                int count = 0;
                if(dr.HasRows)
                {
                    while(dr.Read())
                    {
                        count++;
                        string id = dr["ID"].ToString();
                        string name = dr["姓名"].ToString();
                        string classname = dr["班級"].ToString();
                        string score = dr["分數"].ToString();
                        Console.WriteLine(id + "|" + name+"|"+classname+"|"+score);
                    }
                }
                Console.WriteLine("一共有"+ count + "行數據");
               
               
                //刪除
    cmd.CommandText = "delete from SQL_T where 姓名='Tom';";
                int a = cmd.ExecuteNonQuery();  //ExecuteNonQuery返回受影響的行數
                if(a>0)
                {
                    Console.WriteLine("刪除了"+ a +"");
                }else{
                    Console.WriteLine("刪除失敗");
                }
                conn.Close();  //接受連接有限,使用完關閉連接
                Console.ReadLine();
            }
        }

    DataAdapter數據適配器 填充DataSet

     
    class DataAdapter
        {
            static void Main(string[] args)
            {
                DataSet dataSet = new DataSet();
                using(sqlConnection conn = new sqlConnection(""))
                {
                    conn.Open();
                    SqlCommand command = conn.CreateCommand();
    command.CommandText = "select*from SQL_T";//編寫數據庫語句
                    SqlDataAdapter dataAdapter = new SqlDataAdapter(command);//創建SqlDataAdapter對象  并執行sql
                    dataAdapter.Fill(dataSet);//填充數據
                }
            }
        }
    /// <summary>
            /// 使用SqlCommandBuilder對數據增刪改查
            /// </summary>
            private static void SqlCommandBuilder()
            {
                using (sqlConnection conn = new sqlConnection(""))
                {
                    conn.Open();
                    SqlCommand command = conn.CreateCommand();
                    command.CommandText = "select*from SQL_T";//編寫數據庫語句
                    SqlDataAdapter da = new SqlDataAdapter(command);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da);//作用是將DataSet增加的數據轉化為SQL語句來跟新數據庫
                    DataRow row = ds.Tables[0].NewRow();//添加行,實例化一個行對象
                    row[0] = "11";
                    row[1] = "22";
                    ds.Tables[0].Rows.Add(row);  //添加到表中
                    ds.Tables[0].Rows[1] = ""; //修改數據
    
                    ds.Tables[0].Rows[2].Delete();//刪除數據
                    da.Update(ds);             //將DataSet中表和數據庫進行對比更新
                }
            }
    DataReader 和DataAdapter 區別
     
    SqlDataReader  :
    • 只能讀取數據庫,而且所有操作必須處於連接狀態,但是要對數據庫進行操作時,只能借助SqlCommand類。
    • 一次只在內存中讀取一行,減少系統開銷
    • 讀取時需通過自身Read()方法循環讀取數據到指定對象
    • 需要通過調用自身 Close()方法斷開連接
    SqlDataAdapter: 
    • 建立在SqlCommand對象之上,具有SqlCommand類的一切功能,能夠將數據填充到DataSet對象中,而且不需要再連接到數據庫,可以直接從DataSet或DataTable中獲取數據
    • 可通過Fill()方法一次性填充數據到DataSet
    • 讀取完數據庫后自動斷開連接

    DataSet    DataTable    DataRow  

    DataSet    DataSet是不依賴於數據庫的獨立數據集合,即關閉數據庫依然可以使用,DataSet裡面可以存儲多個表(DataTable)
    DataTable  表示內存中數據的一個表,存儲在內存中的表,在持久化(dataAdapter.Update)到數據庫之前,是不會對數據庫產生影響的
    DataTable 成員DataRow    DataTable是由一個個DataRow組成而成。DataTable.Row[i]即表示其中的第i行
    DataRowState    是DataRow中一個很重要的狀態包括(Added添加、Deleted刪除、Detached分離、Modified修改、Unchange未改變)
    static void Main(string[] args)
            {   //數據庫連接字符串
                string sql = "server =GSDEV018HZ;database=TEST; user =GSB6275; pwd=ygt562356610;";
                //查詢
                string commandString = "Select*from SQL_T";
                //創建SqlDataAdapter對象  并執行sql
                SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString,sql);
                //創建數據集dataSet
                DataSet dataSet = new DataSet();
                //將數據添加到數據集中
                dataAdapter.Fill(dataSet);
                //將數據表添加到數據集中
                DataTable dataTable = dataSet.Tables("SQL_T");
               
            }
  • 相关阅读:
    网页基本信息
    3.ThinkPHP入门---视图
    2.TinkPHP入门----控制器
    1.Thinkphp入门--框架介绍
    C#生成二维码
    .net mvc中的表单异步提交
    .net MVC中异常日志
    .net导入excel数据到数据库中
    执行带返回参数的存储过程
    Jquery客户端校验——jquery.validate.js
  • 原文地址:https://www.cnblogs.com/ygtup/p/9360684.html
Copyright © 2011-2022 走看看