SqlConnection 類 表示到 SQL Server 數據庫的連接。 此類不能被繼承。
1.主要屬性
- DataSource: 要連接的 SQL Server 的實例的名稱。
- Database: 獲取當前數據庫的名稱或打開連接後要使用的數據庫的名稱。
- ConnectionString: 連接字符串,其中包含源數據庫名稱和建立初始連接所需的其他參數。 默認值爲一個空字符串。
- ConnectionTimeout: 獲取終止嘗試並生成錯誤之前在嘗試建立連接時所等待的時間。
2.示例
string connString = "Server= ;Database= ;UID= ;PWD= ;"; //Server=實例名稱;Database=數據庫名稱t;UID=用戶名;PWD=密碼;
SqlConnection conn = new SqlConnection(connString); //創建SqlConnection 實例
conn.Open(); //打開連接
....
conn.Close(); //關閉連接
或者:
string connString = "Server= ;Database= ;UID= ;PWD= ;"; //Server=實例名稱;Database=數據庫名稱t;UID=用戶名;PWD=密碼;
SqlConnection conn = new SqlConnection(); //創建SqlConnection 實例
conn.ConnectionString = connString; //設置ConnectionString
conn.Open(); //打開連接
....
conn.Close(); //關閉連接
上面兩種方式都使用Close()方法來釋放資源,比較繁瑣,可以使用using()方法來取代,以及數據庫連接信息可以在config文件中配置,方便後期維護。
//config文件中的配置
<connectionStrings>
<add name="SQLConnection" connectionString="Server= ;Database= ;UID= ;PWD= ;" providerName="System.Data.SqlClient" />
</connectionStrings>
//數據庫連接
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))
SqlCommand 類 表示要對 SQL Server 數據庫執行的一個 Transact-SQL 語句或存儲過程。 此類不能被繼承。
1.主要屬性
- CommandType: 表示執行SQL操作的類型,有以下3中類型:
StoredProcedure 存儲過程名,
TableDirect 表名,
Text SQL 文本命令(默認爲 Text) - CommandText: 執行的 SQL 語句。
- Connection: 獲取或設置 SqlCommand 的此實例使用的 SqlConnection。
- Parameters: SQL 語句或存儲過程的參數。
- **CommandTimeout:**獲取或設置在終止嘗試執行命令並生成錯誤之前的等待時間。
2.主要方法
- ExecuteReader: 將 CommandText 發送到 Connection,並生成 SqlDataReader。主要適用:SELECT語句。
- ExecuteNonQuery: 對連接執行 Transact-SQL 語句並返回受影響的行數。適用:UPDATE、INSERT 和 DELETE 語句。
- ExecuteScalar: 執行查詢,並返回由查詢返回的結果集中的第一行的第一列。 其他列或行將被忽略。適用:SELECT語句。
3.示例
List<Student> StuList = new List<Student>();
//連接數據庫
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString))
using (SqlCommand cmd = new SqlCommand()) //創建SqlCommand 對象
{
cmd.CommandType = CommandType.Text; //默認 Text ,可不寫
cmd.CommandTimeout = 30; //默認30秒 ,可不寫
cmd.CommandText = "SELECT * FROM Student"; //SQL語句
cmd.Connection = conn; //設置 SqlCommand 的此實例使用的 SqlConnection。
conn.Open(); //打開連接
SqlDataReader reader = cmd.ExecuteReader(); //ExecuteReader()方法
if (reader.Read())
{
Student stu = new Student();
stu.id = Convert.ToInt32(reader["id"]);
stu.name = reader["name"].ToString();
stu.password = reader["password"].ToString();
stu.score = Convert.ToInt32(reader["score"]);
StuList.Add(stu);
}
}
官方文檔:https://docs.microsoft.com/zh-cn/dotnet/api/system.data.sqlclient?view=netframework-4.7.2