【转】ADO.Net之SqlConnection、 Sqlcommand的应用学习心得(思维导图,知识解析,案例分析)
ADO.Net之SqlConnection、?Sqlcommand的應用
一、思維導圖:
?
?
ADO.NET與SQL連接:
?
?
二、知識點介紹:
SqlConnection和Sqlcommand都是組成數據提供程序的類。
SqlConnection使用它來建立和數據庫的連接,Sqlcommand使用它執行SQL命令和存儲過程。
ADO.NET有兩種類型的對象:基于連接的和基于內容的,SqlConnection和Sqlcommand屬于基于連接的,它們連接到數據庫,執行SQL語句,遍歷只讀結果集或者填充DataSet。基于連接的對象是針對具體數據源類型的,并且可以在提供程序制定的命令空間中(例如SQL Server提供程序的System.Data.SqlClient)找到。
2.1SqlConnection
SqlConnection類用于建立到SQL Server數據庫的開放連接。這是一個封閉的類,所以不能被繼承。連接到Microsoft SQL Server數據庫時,SqlConnection類與SqlDataAdapter和SqlCommand類一起使用來提高性能。
即使連接超出范圍,連接也不會明確關閉。?因此,在代碼中必須通過調用Close()方法顯式關閉連接。
1.SqlConnection類簽名(語法):
Public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
SqlConnection有2個構造方法,一個有參,一個無參
public SqlConnection();
public SqlConnection(string connectionString);
3.創建SqlConnection對象的兩種形式:
SqlConnection connection = new SqlConnection("data source=.; database=SampleDB; integrated security=SSPI");
SqlConnection connection = new SqlConnection(); connection.ConnectionString = "data source=.; database=SampleDB; integrated security=SSPI";
3.創建SqlConnection類構造函數
| 編號 | 構造函數 | 描述 |
| 1 | SqlConnection() | 它用于初始化SqlConnection類的新實例。 |
| 2 | SqlConnection(String) | 它用于初始化SqlConnection類的新實例,并將連接字符串作為參數。 |
| 3 | SqlConnection(String, SqlCredential) | 它用于初始化一個帶有兩個參數的SqlConnection類的新實例。首先是連接字符串,其次是SQL憑據。 |
4.SqlConnection類的方法
| 編號 | 方法 | 描述 |
| 1 | BeginTransaction() | 它用于啟動數據庫事務。 |
| 2 | ChangeDatabase(String) | 它用于更改當前數據庫以打開SqlConnection。 |
| 3 | ChangePassword(String, String) | 它會更改連接字符串中指示的用戶的SQL Server密碼。 |
| 4 | Close() | 它用于關閉與數據庫的連接。 |
| 5 | CreateCommand() | 它作為分布式事務在指定的事務中使用。 |
| 6 | GetSchema() | 它返回這個SqlConnection的數據源的模式信息。 |
| 7 | Open() | 它用來打開數據庫連接。 |
| 8 | ResetStatistics() | 如果啟用統計信息收集,它會重置所有值。 |
2.2?SqlCommand
ADO.Net的SqlCommand類用于存儲和執行SQL Server數據庫的SQL語句。這是一個封閉的類,所以不能被繼承。
1.SqlCommand類簽名(語法):
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
2.構造的函數
| 編號 | 構造函數 | 描述 |
| 1 | SqlCommand() | 它用于初始化SqlCommand類的新實例。 |
| 2 | SqlCommand(String) | 它用于使用字符串參數初始化SqlCommand類的新實例。 |
| 3 | SqlCommand(String, SqlConnection, SqlTransaction) | 它用于初始化SqlCommand類的新實例。它分別使用三個參數查詢,連接和事務字符串。 |
| 4 | SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting) | 它使用指定的命令文本,連接,事務和加密設置來初始化SqlCommand類的新實例。 |
| 編號 | 方法 | 描述 |
| 1 | BeginExecuteNonQuery() | 它用于啟動由此SqlCommand描述的SQL語句的異步執行。 |
| 2 | Cancel() | 它試圖取消一個SqlCommand的執行。 |
| 3 | Clone() | 它創建一個新的SqlCommand對象,它是當前實例的一個副本。 |
| 4 | CreateParameter() | 它創建一個SqlParameter對象的新實例。 |
| 5 | ExecuteReader() | 它用于將CommandText發送給Connection并構建一個SqlDataReader。 |
| 6 | ExecuteXmlReader() | 它用于將CommandText發送給Connection并構建一個XmlReader對象。 |
| 7 | ExecuteScalar() | 它執行查詢并返回結果集中第一行的第一列,其他列或行將被忽略。 |
| 8 | Prepare() | 它用于通過使用SQL Server的實例來創建準備好的命令版本。 |
| 9 | ResetCommandTimeout() | 它用于將CommandTimeout屬性重置為默認值。 |
三、實例說明:創建一個SqlCommand實例并執行一條SQL語句
using System;using System.Data.SqlClient;
namespace AdoNetSqlCommand{
????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("select * from student_info", con);
????????????????// Opening Connection ?
????????????????con.Open();
????????????????Console.WriteLine("當前?student_info?表中的記錄信息如下?- ");
????????????????// Executing the SQL query ?
????????????????SqlDataReader sdr = cm.ExecuteReader();
????????????????while (sdr.Read())
????????????????{
????????????????????Console.WriteLine("學生編號:"+ sdr["id"] + ",姓名:?"+sdr["name"] + ",電子郵箱:?" + sdr["email"]);
????????????????}
????????????}
????????????catch (Exception e)
????????????{
????????????????Console.WriteLine("OOPs, something went wrong." + e);
????????????}
????????????// Closing the connection ?
????????????finally
????????????{
????????????????con.Close();
????????????}
????????}
????}}
總結
以上是生活随笔為你收集整理的【转】ADO.Net之SqlConnection、 Sqlcommand的应用学习心得(思维导图,知识解析,案例分析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事故已三周 特斯拉在拆车厂突发自燃!消防
- 下一篇: 京东PLUS会员超级补贴券来了:可领11