C#操作SqlServer数据库的常用对象,及其方法
首先放出所常用的對象:
System.Data.SqlClient.SqlConnection
System.Data.SqlClient.SqlCommand
System.Data.SqlClient.SqlDataAdapter
SqlConnection對象用于連接SqlServer數據庫,SqlCommand對象用于執行sql語句,至于SqlDataAdapter對象,后面再說。
一、SqlConnection對象
先看代碼:
string strConn = "server='(local)';database='mydatabase';uid='root';pwd='123456'";//編寫需要連接的數據庫信息,一般這個會在Web.Config文件配置 SqlConnection conn = new SqlConnection(strConn); //創建連接對象 conn.Open();//打開連接很容易理解,會將上面代碼寫成:
string strConn = "server='(local)';database='mydatabase';uid='root';pwd='123456'";//編寫需要連接的數據庫信息,一般這個會在Web.Config文件配置 using(SqlConnection conn = new SqlConnection(strConn)){ //創建連接對象try{ conn.Open();//打開連接}catch(Exception e){//anything}finally{conn.Close();} }SqlConnection對象就是只起到連接數據庫作用。
二、SqlCommand對象
SqlCommand對象用于數據的增刪改查操作,所以下面介紹SqlCommand類下面的一些方法:
1、ExecuteNonQuery();?
ExecuteNonQuery(),看方法名字有Non,可以聯想到其可能沒有返回值。其實它的返回值類型為int型。當select操作時,返回-1;當執行增加,刪除,修改數據時,返回影響的行數。(PS,此方法意義在于執行數據的增、刪、改操作)
2、ExecuteReader();
ExecuteReader(),該方法用于數據的查詢,執行后的返回值類型是SqlDataReader,可以通過SqlDataReader對象下面的Read()方法來對數據集進行遍歷,有兩種提取數據的手段:SqlDataReader對象["列名"].ToString()和SqlDataReader對象[索引].ToString()(這里的索引值從0開始)
代碼例子:
string strConn = "server='(local)';database='mydatabase';uid='root';pwd='123456'";//編寫需要連接的數據庫信息,一般這個會在Web.Config文件配置 using(SqlConnection conn = new SqlConnection(strConn)){ //創建連接對象try{ conn.Open();//打開連接string strSql = "select * from student_tb";//編寫sql語句SqlCommand sc = new SqlCommand(strSql, conn);//創建SqlCommand對象SqlDataReader reader = cmd.ExecuteReader(); //執行sql語句while(reader.Read()){//遍歷查詢到的數據集int id = int.Parse(reader[0].ToString());//通過索引得到該列的值 }}catch(Exception e){//anything}finally{conn.Close();} }3、ExecuteScaler();?
它的返回值類型是Object類型。也是用于查詢,只有確定查詢之后的結果只有一個值得情況下,可以使用此方法。
string strConn = "server='(local)';database='mydatabase';uid='root';pwd='123456'";//編寫需要連接的數據庫信息,一般這個會在Web.Config文件配置 using(SqlConnection conn = new SqlConnection(strConn)){ //創建連接對象try{ conn.Open();//打開連接string strSql = "select stu_name from student_tb";//編寫sql語句SqlCommand sc = new SqlCommand(strSql, conn);//創建SqlCommand對象string stuId = (string)cmd.ExecuteScaler(); //執行sql語句 }catch(Exception e){//anything}finally{conn.Close();} }三、SqlDataAdapter對象?
上面的查詢方法在處理少量返回數據時非常方便,但遇到需要處理大量返回數據集時,那么需要用到SqlDataAdapter對象。
SqlDataAdapter類提供多個構造方法:
1、SqlDataAdapter(strSql,strConn) ,strSql為字符串形式sql語句,strConn跟上面代碼中的strConn變量一樣
2、SqlDataAdapter(strSql, conn) ,strSql為字符串形式sql語句,conn為SqlConnection對象
3、SqlDataAdapter(cmd) , cmd為SqlCommand對象
我們常常使用SqlDataAdapter來填充一個數據表,其中可以有兩種操作,可以填充DataSet對象,也可以填充DataTable對象。
string strConn = "server='(local)';database='mydatabase';uid='root';pwd='123456'";//編寫需要連接的數據庫信息,一般這個會在Web.Config文件配置 using(SqlConnection conn = new SqlConnection(strConn)){ //創建連接對象try{ conn.Open();//打開連接string strSql = "select * from student_tb";//編寫sql語句SqlCommand sc = new SqlCommand(strSql, conn);//創建SqlCommand對象SqlDataAdapter sda = new SqlDataAdapter(sc);DataSet ds = new DataSet();sda.Fill(ds);//DataTable dt = new DataTable();//sda.Fill(dt);}catch(Exception e){//anything}finally{conn.Close();} }其實SqlDataAdapter內部通過SqlDataReader獲取數據,而默認情況下SqlDataReader不能獲知其查詢語句對應的數據庫表名,所以上面代碼會在DataSet中創建一個新的DataTable,這個新的DataTable會擁有名為返回數據的相應列名,但是DataTable對象的名稱是Table,我們有時想得到的table名是我們自定義的,則可以添加:
?
//創建SqlDataAdapter對象之后,創建DataSet對象之前,“Table”是默認的Table對象名 sda.TableMappings.Add("Table","MyTableName");?
或者,直接使用Fill()方法的重載:
sda.Fill(ds, "MyTableName");以上就是本次總結c#操作SqlServer常用的類和方法,記錄下來,方便以后可以查閱。
?
轉載于:https://www.cnblogs.com/SysoCjs/p/9767913.html
總結
以上是生活随笔為你收集整理的C#操作SqlServer数据库的常用对象,及其方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【异常-举例6:finally】
- 下一篇: webstorm中git密码输入错误,重