ADO.Net之SqlConnection、 Sqlcommand的應用學習心得(思維導圖,知識解析,案例分析)
ADO.Net之SqlConnection、 Sqlcommand的應用
一、思維導圖:
ADO.NET與SQL連接:
二、知識點介紹:
SqlConnection和Sqlcommand都是組成數據提供程序的類。
SqlConnection使用它來建立和數據庫的連接,Sqlcommand使用它執行SQL命令和存儲過程。
ADO.NET有兩種類型的對象:基於連接的和基於內容的,SqlConnection和Sqlcommand屬於基於連接的,它們連接到數據庫,執行SQL語句,遍歷只讀結果集或者填充DataSet。基於連接的對象是針對具體數據源類型的,並且可以在提供程序制定的命令空間中
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的應用學習心得(思維導圖,知識解析,案例分析)