SQLServer 數據庫操作

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章