使用ADO.NET查詢和訪問數據庫
連接數據庫操作:
1. 定義連接字符串:
String connString = “Data Source = 服務器名; Initial Catalog = 數據庫名;User ID = 用戶名;Pwd = 密碼”(沒有 密碼可以省略)
String connString = @"Data Source = .; Initial Catalog = 數據庫名 ; Integrated Security = True ";
2. 創建Connection對象:
SqlConnection conn = new SqlConnection(connString);
3. 打開與數據庫的連接:
conn.Open();
Command對象(允許向數據庫傳遞請求,檢索和操作數據庫中的數據)使用步驟:
1. 創建數據庫連接
SqlConnection conn = new SqlConnection(connString);
2. 定義SQL語句
String sql = “”;
3. 創建Command語句
SqlCommand cmd = new SqlCommand(sql,conn);
4. 執行命令(執行命令之前,必須打開數據庫)
int num = (int)cmd.ExecuteScalar();
使用ADO.NET查詢和操作數據庫
DataReader逐行讀取數據:
DataReader主要成員:
屬性 |
說明 |
HasRows |
是否返回了結果 |
方法 |
說明 |
Read |
前進到下一行記錄 |
Close |
關閉 DataReader 對象 |
DataReader使用步驟:
1. 創建Command對象:
2. 調用Command對象的ExecuteReader()方法創建DataReader對象(假設已經有一個Command對象名為comm,就可以這樣創建一個DataReader對象:SqlDataReader sda = conn.ExecuteReader();)
3. 使用DataReader的Reader()方法逐行讀取數據(這個方法返回一個布爾值,如果能讀到一行記錄,就返回True,否則返回False):sda.Reader();
4. 讀取當前行的某列的數據,可以像使用數組一樣,用方括號來讀取某列的值,如:(type )sda[],方括號中可以像數組一樣使用列的索引,從0開始,也可以使用列名。讀取的列值要進行類型轉換,如:(string)sda[“StudentName”];
5. 關閉DataReader對象,調用它的Close()方法,如:sda.Close();
例:從數據庫中讀取國籍放入國籍下拉列表框中(查詢數據庫中的數據):
//定義sql語句
string sql = "select nationality from nationlityInfo";
//創建Command對象
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
try
{
//打開數據庫連接
DBHelper.connection.Open();
SqlDataReader reader = command.ExecuteReader();
//循環讀出國籍放入國籍組合框
while (reader.Read())
{
cboNat.Items.Add(reader["nationality"].ToString());
}
reader.Close();
}
catch (Exception ex)
{ //打印異常
Console.WriteLine(ex.Message);
}
finally
{//關閉數據庫
DBHelper.connection.Close();
}
對數據庫中的數據增刪改(使用Command對象的ExecuteNonQuery()方法)
ExecuteNonQuery()方法用於執行指定的SQL語句,如:update、insert、delete,它返回的是受SQL語句影響的行數
使用Command對象的ExecuteNonQuery()方法的步驟如下:
1. 創建Connection對象
2. 定義要執行的SQL語句
3. 創建Command對象
4. 執行ExecuteNonQuery()方法
5. 根據返回結果,進行后續處理