<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 1. 前幾代模型 https://my.oschina.net/u/1772925/blog/420054 ODBC位于數據訪問的最底層,OLEDB次之,ADO位于最上層。 我們的應用程序可以通過三種方式訪問數據庫,分別是: - 應用程序——ODBC——數據庫; - 應用程序——OLEDB——ODBC——數據庫; - 應用程序——ADO——OLEDB——ODBC——數據庫。 ![](https://box.kancloud.cn/4f5e2aa6c2e143cdb92c32b1a646d094_461x460.png) 在用到數據庫跟 Microsoft相關辦公軟件(Excel Word等,或者是access數據庫)對接的時候,需要用到oledb這個對象。 ## sqlcommand oledbcommand 區別 如果針對的是sql數據庫,則用sqlcomMand 更好。如果不一定是sql數據庫,比如有可能是access oracle數據庫,則可用oledbcommand. # 2. ADO.NET對象模型 ## 模型 包括: * Data Table * 數據集 DataAdapter DataReader * Command * 數據鏈接 Connection// 提供與數據庫的連接功能 ![](http://ww2.sinaimg.cn/large/006tNc79gy1g431dkrcf5j30q10cudh5.jpg) ## 命名空間 使用時需要加載以下命名空間: ``` using System.Data; using System.Data.Common; using System.Data.Odbc; using System.Data.OleDb; //用于跟Microsoft對接的接口協議 using System.Data.SqlClient; //最常用 using System.Data.SqlTypes; using System.Data.oracleClient; ``` 最常用的為: ``` using System.Data; using System.Data.SqlClient; ``` ![](https://box.kancloud.cn/144b60f32e8cad03f5b0cd9b42255e6a_1078x482.png) ## connection 數據連接對象 > 所有數據庫的訪問都是從數據連接開始的 連接sql數據庫: `"server = 服務器名; database = 數據庫名; uid = 用戶名; pwd = 密碼"` 如果是用 windows 賬號登錄,則可以`"server = 服務器名; database = 數據庫名; integrated = SSPI"` 如果是連接 access 數據庫:`"provide = 提供者; datasource = access文件路徑"` ![](http://ww3.sinaimg.cn/large/006tNc79gy1g431bdgry9j30pm0chwh8.jpg) ![](http://ww4.sinaimg.cn/large/006tNc79gy1g431critrjj30nl0bmq4x.jpg) 邏輯是:如果要連接到數據庫,則需要創建一個連接字符串(比如命名為SqlStr),然后通過這個連接字符串的 connection 方法再去連接數據庫 ``` string SqlStr= "Server = . ; database = 審圖表; uid = sa; pwd = Am******23"; SqlConnection con = new SqlConnection(SqlStr); con.Open(); …… ``` 也可參看:幾種身份認證模式 如果是 sqlserver 用戶名密碼登錄,則用戶名一般為 sa,server 可以直接寫等于“.”。如果是用 windows 登錄,則可以不用寫用戶名uid 或密碼 pwd,但需要寫"IntegratedSecurity = SSPI"。 https://blog.csdn.net/sinat_15155817/article/details/58266044 啟用connection數據連接對象。比如插入控件label1和label2,如果登錄了,則在label1顯示“sql 數據庫已登錄”。如果退出了,需要在label2顯示“數據庫未登錄”。在form1的 load 內輸入代碼如下: ![](https://ws2.sinaimg.cn/large/006tKfTcgy1fslk0j3vyvj30ba06it8v.jpg) ``` string SqlStr = "Server = CA9A; User Id = sa; Pwd = Am******23; DataBase = amy"; SqlConnection con = new Sqlconnection(SqlStr); con.open (); if( con.State == ConnectionState.Open) { label1.Text = "sql已連接"; con.Close(); } if(con.State == ConnectionState.Close) { label2.Text = "sql 未連接"; } ``` ![](https://ws4.sinaimg.cn/large/006tKfTcgy1fslkk5g96fj30sl08l3zr.jpg) > - 關鍵是輸入以下信息(可以在sql sercer 2017配置管理器 中找到) > - server => 一般是服務器的名字,若有斜杠,則需要多輸入一個反斜杠 > - user id => 一般是 sa > - 密碼 > - 數據庫名稱 => 比如本例中的 amy ## 關于查找上面信息: 在ssms中打開。user id 一般是后面的“CA9A\zyt”,但我們一般寫 sa。 ![](https://ws4.sinaimg.cn/large/006tKfTcgy1fslkhc41edj30pi0ciacb.jpg) ## 關于 TCP/IP 設置: [sql server 部分參考](http://www.hmoore.net/amy326/sql_server/667992) 需在sql server 2017配置管理器中將服務器實例(也就是mssqlsercer)中的TCP/IP IP地址設置成啟用。這里的意思是,允許外部通過服務器訪問數據庫。 ![](https://ws2.sinaimg.cn/large/006tKfTcgy1fslkbg941fj30jz0ihgnx.jpg) # 3. Command對象 ## 常用屬性 CommandType CommandText CommandTimeOut Connection Parameters ![](https://ws1.sinaimg.cn/large/006tKfTcgy1fsn1f7b6efj30me0ar414.jpg) ## 常用方法 ExecuteNonQuery ——常用,執行非 select 命令,比如增、刪、改查等功能; ExecuteScalar——執行 select 命令中的 count 或 sum 等函數; ExecuteReader ——執行 select 命令 ![](https://ws1.sinaimg.cn/large/006tKfTcgy1fsn1fgoodfj30jl098jt2.jpg) ## command操作數據 > 執行完數據庫操作時一定要關閉數據庫連接。使用`conn.Close()`語句。 幾個常用命令: ![](https://ws1.sinaimg.cn/large/006tKfTcgy1fsn1pz1435j30u50ef777.jpg) ![](http://ww1.sinaimg.cn/large/006tNc79gy1g4329zko5mj30jh09ngno.jpg) ![](https://box.kancloud.cn/a7d5172cb6a82ebfa96f54e71f93447c_639x341.png) ``` sqlconnection conn = new sqlconnection("server = CA9A; database = 審圖表; integrate = SSPI"); string strsql = "insert into dbo.審核信息(項目編號, 項目名稱) values (' "+convert.toString( textBox1.Text)+" ', ' "+textBox.Text+" ')"; sqlcommand comm= new sqlcommand(strsql, conn); conn.open(); comm.ExecuteNonQuery(); //執行。也就是說寫了上面的 sql 語句以后,再寫 executenonquery ,就表示“run!” 開始執行。這個方法用來執行 select 以外的命令。如果 sql 語句是 select,則無法使用這個方法。 conn.close(); ``` > 注意表達,有單引號,有雙引號,有加號,有括號 ![](https://box.kancloud.cn/2ea6c08831daa643dbfc24ad7ee4e7b5_806x286.png) ## command 調用存儲過程 存儲過程詳見: [http://www.hmoore.net/amy326/sql_server/675379](http://www.hmoore.net/amy326/sql_server/675379) 比直接用一般的 sql 語句更安全。 ![](https://box.kancloud.cn/e087846e6dfdaf66c2da996c72c976d2_1064x547.png) 這些變量應該要已經在dbo數據庫-存儲過程中添加。 ![](https://ws1.sinaimg.cn/large/006tKfTcgy1fsrosybj6hj30a50hljss.jpg) ## DateReader 對象 沒有自己的構造函數,所以要通過sqlCommand對象的ExecuteReader方法使用。比如sqlcommand對象變量命名為 sqlcmd,則需要實例化為:`sqlDateReader sqldr = sqlcmd.ExecuteReader();` # 3. Data Table、DataSet、DataAdapter、Command Connection的關系 http://blog.sina.com.cn/s/blog_7e540ba10102vc26.html dataReader 與 dataCommand、dataAdapter 都是對象 ![](https://ws4.sinaimg.cn/large/006tNbRwgy1fx2sfbxlrzj31kw1294my.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看