【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter
1.使用Connection連接數據庫的步驟:
(1).添加命名空間 System.Data.SqlClient(注意:初學者經常會忘記)
(2)定義連接字符串。連接SQL Server 數據庫時:
server=服務器名;database=數據庫名;uid=用戶名;pwd=密碼;例如:要連接本機上的StudentManagement數據庫,用戶名為sa,密碼為111
string connString="server=.;database=StudentManagement;uid=sa;pwd=111;"
(3).創建Connection對象:
SqlConnection connStr=new SqlConnection(connSting);
(4).打開數據庫:
conn.Open();
(5).對數據庫操作完畢后關閉數據庫連接
conn.Close();
2.Command對象:
(1).command對象可以用來對數據庫發出具體的操作指令,例如對數據庫的查詢、增加、修改、刪除
(2).創建Command對象,并設置它的屬性:
SqlCommand command =new SqlCommand();
command.Connection=connection;
command.CommandText=sqlQuery(sqlQuery為查詢語句);
(3).Command對象的主要方法:
ExecuteNonQuery:執行后不返回任何行,對于update、insert、delete語句,返回影響的行數對于其他類型的語句,返回值為-1
ExecuteReader:執行查詢語句,返回DataReader對象
ExecuteScalar:執行查詢,并返回查詢結果的第一行第一列,忽略其他列或行
ExecuteXmlreader:將CommandText發送到Connection并生成一個XmlReader
3.DataReader對象:
(1).DataReader對象可以從數據庫中一只讀、只進的方式查詢數據,每次的操作只有一個記錄保存在內存中
(2).DataReader對象的主要方法:
Read:讀取下一條數據
Close:關閉DataReader對象
(3).使用DataReader提取數據的步驟:
(a).建立與數據庫的連接并打開
(b).創建一個Command對象
(c).從Command對象中創建DataReader對象
(d).使用DataReader讀取并顯示
可以使用一個循環利用Read方法便利數據庫中行的信息,如果要獲取該行中某列的值,只需要使用"["和"]"運算符就可以了
(e).分別關閉DataReader對象和數據庫的連接
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient;namespace ado.netDemo {class Program{static void Main(string[] args){//定義連接字符串string connStr = @"server=SUNNY\SQLEXPRESS;database=TestDB;UID=sa;PWD=123456";//連接數據庫SqlConnection conn = new SqlConnection(connStr);//SQL語句string sql = "select * from tb_Students";//string sql = "insert into tb_Students(SID, Name, Password, Sex, Age, Address, Phone, QQ) Values('20117750120','小鳥電動車','123','男',21,'HONGKONG','18736000000','1147016165')";//string sql = "update tb_Students set SID='20117750119' where SID='20117750120'";//string sql = "delete from tb_Students where SID='20117750101'";//執行SQL語句SqlCommand cmd = new SqlCommand(sql,conn);conn.Open();SqlDataReader reader = cmd.ExecuteReader();while (reader.Read())//read()一直讀取下一個數據 {Console.WriteLine(string.Format("{0}\t{1}\t{2}\t{3}", reader[0],reader[1], reader[2], reader[3]));}reader.Close();//查詢數據#region//ExecuteScalar執行sql查詢語句的第一行第一列,忽略其他行其他列。//object result = cmd.ExecuteScalar();//Console.WriteLine("共查詢到有:{0}行數據", result.ToString());#endregion//增加數據#region//int result = cmd.ExecuteNonQuery();//if (result < 1)//{// Console.WriteLine("數據插入失敗,請檢查填寫信息,重新操作");//}//else//{// Console.WriteLine("數據插入成功!");//}#endregion//修改數據#region//int result = cmd.ExecuteNonQuery();//if (result < 1)//{// Console.WriteLine("數據修改失敗,請檢查填寫信息,重新操作");//}//else//{// Console.WriteLine("數據修改成功!");//}#endregion//刪除數據#region//int result = cmd.ExecuteNonQuery();//if (result < 1)//{// Console.WriteLine("數據刪除失敗,請檢查填寫信息,重新操作");// Console.WriteLine("{0}行收到影響", result);//}//else//{// Console.WriteLine("數據刪除成功!");// Console.WriteLine("{0}行收到影響", result);//}#endregionconn.Close();Console.ReadKey();}} }?
(二)ADO.NET數據庫訪問技術:
通過這幾天的學習,下面來把有關數據適配器和數據集方面的知識點總結一下:
一.DataSet 和DataTable:
數據集在ADO.net中的對象是DataSet,DataSet由一個或多個DataTable組成
1.DataTable:
(1).DataTable是表格數據塊在內存中的表示,DataTable對象由DataColumns集合以及DataRows集合組成。對數據庫檢索后,被取回的數據就存放在DataTable對象中
(2).DataTable對象的主要的屬性:
CaseSensitive:表中的字符串是否區分大小寫
Columns:返回屬于這個表的列集合
DataSet:獲得這個表的行集合
TableName:獲得或設置表的名稱
HasChanges:判斷數據集是否更改了
(3).dataTable對象的主要方法:
Clear:清除DataTable內所有的行數
NewRow:增加一行
2、DataSet:數據裝置
(1).DataSet的主要屬性:
Table:可以訪問DataSet中表的集合
(2).DataSet對象的主要方法
Clear:完全清除DataSet的數據
Clone:創建與原DataSet具有相同結構和相同行的DataSet
Copy:創建具有相同結構的新DataSet,但不包含任何行
(3).填充DataSet數據集:使用數據適配器DataAdapter,DataAdapter對象的Fill()方法可以給DataSet填充數據,例如
(Fill(參數1,參數2 )第一個參數指定要填充的DataSet,第二個參數是dataSet中要加載數據的Datatable名稱)
(4).使用dataAdapter對象填充DataSet數據庫的步驟:
(a).建立數據庫的連接,并打開蓋連接
string connString="、、、";
SqlConnection mySqlConnection=new SqlConnection(connString);
mySqlConnection.Open();
(b).定義要執行的SQl語句
string sqlQuery="、、、、";
(c).創建數據集DataSet對象
DataSet ds=new DataSet();
(d) .創建數據適配器DataAdapter
sqlDataAdapter da=new sqlDataAdapter(sqlQuery,mySqlConnection);
(e).使用DataAdapter對象的Fill()方法填充數據集
a.Fill(ds,"Table");//DataSet可以被看作是一個虛擬的表或表的集合,這里被填充的表的名稱在Fill方法中命名為Table
(f).關閉數據庫連接
mySqlConnection.Close();
注意:close與Dispose的區別:Close關閉以后還能打開;Dispose是直接銷毀,不能再次使用
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data.SqlClient; 8 using System.Configuration; 9 using System.Data; 10 11 namespace ado.netDemo1 12 { 13 public partial class Test1 : System.Web.UI.Page 14 { 15 protected void Page_Load(object sender, EventArgs e) 16 { 17 //string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString(); 18 //SqlConnection conn = new SqlConnection(connStr); 19 //conn.Open(); 20 //string sql = "select * from tb_Students"; 21 //SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); 22 //DataSet dataset = new DataSet(); 23 //adapter.Fill(dataset); 24 //conn.Close(); 25 //GridView1.DataSource = dataset.Tables[0].ToString(); 26 //GridView1.DataBind(); 27 28 29 GridView1.DataSource = getResult(); 30 this.GridView1.DataBind(); 31 } 32 33 //將數據庫信息田中到DataSet的DataTable中 34 public DataSet getResult() 35 { 36 string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString(); 37 SqlConnection conn = new SqlConnection(connStr); 38 conn.Open(); 39 string sql = "select * from tb_Students"; 40 //創建數據適配器 41 SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); 42 //創建數據集對象 43 DataSet dataset = new DataSet(); 44 //使用適配器對象Fill()方法填充DataSet數據集 45 adapter.Fill(dataset); 46 conn.Close(); 47 return dataset; 48 } 49 } 50 }?
(3)訪問DataSet數據集:
(1).訪問DataTable:當訪問的數據被存放到數據集中后,可以用兩種方式訪問DataTable:按表名訪問和按索引(索引從0開始)訪問
(2).訪問行和列
總結:希望通過小編寫的 ADO.NET數據庫訪問技術的兩種方法可以幫助各位網友們在做網站開發的時候,數據庫連接時可以得到更好的解答。
?
轉載于:https://www.cnblogs.com/888888CN/p/7115276.html
總結
以上是生活随笔為你收集整理的【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git如何解决冲突(代码托管在codin
- 下一篇: ASP.NET里创建Microsoft