婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ADO.NET基礎知識匯總

ADO.NET基礎知識匯總

熱門標簽:寧德防封版電銷卡 聊城智能電銷機器人電話 南昌自動外呼系統線路 安陸市地圖標注app 海東防封電銷卡 云南外呼系統代理 西寧電銷外呼系統公司 辦公用地圖標注網點怎么操作 上海市三維地圖標注

雖然我們都知道ADO.NET是對數據庫的操作,但是要真的說出ADO.NET的具體含義還不是很容易。
ADO.NET是ActiveX Data Objects的縮寫,它是一個COM組件庫,用于在microsoft技術中訪問數據。之所以叫ADO.NET,應該是微軟自己打的廣告,希望在NET編程環境中優先使用這種數據訪問接口。上面這段話基本來自百度百科。簡單來說,ADO.NET就是一種數據訪問接口,可以讓我們在程序中調用相應的類庫對數據庫(通常為SQL Server,也可以是access 等其他數據庫)進行增刪改查等操作。

ADO.NET的幾大組成部分
ADO.NET由五大類庫組成,分別是:

Connection(用于建立與 數據庫的連接)
Command(用于執行SQL語句)
DataReader(用于讀取數據)
DataAdapter(用于填充把數據填充到DataSet)
DataSet(數據集,用于程序中)

通常,從程序中訪問數據庫的方法是:

創建一個到數據庫的連接
打開數據庫連接
創建ADO記錄集
從記錄集中提取需要的數據
關閉記錄集
關閉連接

下面就分別根據這一個過程結合ADO.NET的五大類庫進行解釋。

要想使用ADO.NET需要在程序中引用System.Data.SqlClient。其中包含了對Sql Server進行操作的數據訪問類:

SqlConnection:連接數據庫
SqlCommand:數據庫命名對象
SqlCommandBuilder:生成SQL命令
SqlDataReader:數據讀取器
SqlDataAdapter:數據適配器,用于填充DataSet
SqlParameter:為存儲過程定義參數
SqlTransaction:數據庫事務

建立連接

首先,要想訪問數據庫,我們需要一個媒介把程序與數據庫連接起來。這就是連接字符串,它的基本語法為:Data Source(數據源) + Initial Catalog(數據庫名稱) + User ID(用戶名) + Password(密碼)。

復制代碼 代碼如下:

String connectString = "Data Source = myServerAddress;Initial Catalog = myDataBase;User Id = myUserName; Password = myPassword;";

或者

復制代碼 代碼如下:

String connectString = "Server =myServerAddress;Database = myDataBase; User Id = myUsername; Password = myPassword;";

注意:對于Sql Server來說,它支持兩種身份驗證方法,一種是windows身份驗證,另一種是Sql Server身份驗證。如果要用windows身份驗證,就需要在連接字符串中包括Integrated Security屬性。該屬性默認為False。需要設置為True后才能使用windows身份驗證。
除了這幾個必須的字段,連接字符串中還有許多可選的屬性,在這里我就不一一列舉,列出一些相關資料供感興趣的朋友自行查閱,一個連接字符串可以包含哪些屬性(https://www.jb51.net/article/67742.htm)。

接著,有了連接字符串就可以創建連接對象了。

SqlConnection connection = new SqlConnection(connecString);
或者可以使用專門的連接字符串生成器:

復制代碼 代碼如下:

SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder()
{
DataSource=”“,
InitialCatalog=”“,
UserID=”“,
Password=””
};
SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString());

然后使用連接對象可以打開或關閉連接。

connection.Open();
connection.Close();

執行命令

打開連接之后就可以操作數據庫了,在這里需要用到SqlCommand命令對象。
它具有四個主要屬性,這些屬性會在初始化的時候賦默認值:
CommandText:空字符串(”“)
CommandTimeout:30
CommandType:CommandType.Text
Connection:Null

創建命令對象:

SqlCommand command = connection.CreateCommand(); 


SqlCommand command = new SqlCommand();

SqlCommand包含了幾個重要的屬性:
CommandText:用于獲取或設置藥對數據源之行的SQL語句、表明或存儲過程。
CommandType:設置你執行的SQL語句類型,有三個枚舉,分別是Text(SQL文本命令),StoredProcedure(存儲過程),TableDirect(表名)。
Parameters:設置你的T-SQL中需要用到的參數。

幾個重要的方法:

ExecuteNonQuery:返回被SQL語句執行影響的行數(int),主要執行增刪改操作。
ExecuteReader:執行SQL或存儲過程,返回的是SqlDataReader類型,主要用來查詢。
ExecuteScalar:返回執行結果集中的第一行第一列,如果沒有數據,則返回NULL。
CreateParameter:創建SqlParameter實例。

舉例說明:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;//必須
using System.Data.SqlClient;//必須
namespace Command
{
 class Program
 {
  static void Main(string[] args)
  {
    SqlConnectionStringBuilder conStr = new SqlConnectionStringBuilder();
    conSt.DataSource=@".\SQLEXPRESS";
    conStr.IntegratedSecurity=true;
    conStr.InitialCatalog="db_Test";
    StringBuilder strSQL = new StringBuilder();
    for(int i=0;i=100;i++)
    {
     strSQL.Append("insert into tb_Test");
     strSQL.Append("values('");
     string name = "test"+i.ToString();
     strSQL.Append(name);
    }
    using(SqlConnection con = new SqlConnection(conStr.ConnectionString))
    {
     con.Open();
     SqlCommand cmd = new SqlCommand(strSQL.ToString(),con);
    int impactedNumber = cmd.ExecuteNonQuery();//返回受影響的行數
    object firstData = cmd.ExecuteScalar();//返回執行結果中的第一行第一列,此方法可用于獲取插入數據的ID,(int lineNumber =(int)cmd.ExecuteScalar();)
    }
  }
 }
}

SQL參數
若想在程序中傳遞參數給數據庫,可以使用SqlParameter。該類有幾個重要的屬性:

ParameterName:設置參數名
Value:給參數設置值
Size:設置參數字節最大長度
SqlDbType:參數在SQL中的類別

和幾個重要的方法:

AddWithVlue

Add
AddRange

舉例說明:

 SqlConnection connection =new SqlConnection(""))
 {
  SqlCommand cmd = connection.CreateCommand();
  cmd.CommandText="";
cmd.Parameters.Add("@name",SqlDbType.NVarChar).Value = "deng";//方法一
cmd.Parameters.AddWithValue(@"name","deng");//方法二
SqlParameter[] parameters = new SqlParameter[]
 {
 new SqlParameter("@name",SqlDbType.NvarChar,100){Value="deng"},
 };
 cmd.Parameters.AddRange(parameters);//可以放一個參數數組,包含多條參數,在此只舉一個例子
}

可以通過cmd.Parameters[i].Value設置和讀取數值。

數據讀取

利用查詢語句得到的數據信息需要通過數據讀取器進行操作。
舉例:

SqlConnetion con = new SqlConnection("")
{
 con.Open();
 SqlCommand cmd = con.CreateCommand();
 cmd.CommandText="";
 SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
 {
  While(dr.Read())
  {
   string str = dr.GetSqlString(0).ToString();
  }
 }
}

介紹幾個常用的方法:

GetOrdinal:可以獲取指定列名的序列號,int name = dr.GetOrdinal(“name”);
GetName:與上面的方法對應,可以通過列號返回列名字。
IsDBNull:判斷當前讀取的數據是否為Null。
NextResult:當查詢為批處理查詢時,使用這個方法去獲取下一個結果集,返回值為Bool,如果存在多個結果集,則為true;否則為false。
Read:讀取數據。

常用屬性有:

HasRow:判斷是否有數據。
FieldCount:獲取讀取的列數。
IsClosed:判斷讀取的數據流是否關閉。
SqlDataReader是連接相關的,也就是說與數據庫的連接一斷開就無法讀取數據庫中的數據,說明查詢結果并不是放在程序中,而是放在數據庫的服務中。

事務

需要用到SqlTransaction類,需要在指定位置命名存儲點,該存儲點之后的操作都將會回滾。
例子:

SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlTransaction transaction = con.BeginTransaction();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = ""
cmd.Transaction = transaction;
transaction.Save("transaction point");
transaction.Rollback("transaction point");

數據適配器

SqlDataAdapter類有四個重載構造函數:

無參
SqlDataAdapter(SqlCommand)
SqlDataAdapter(String,SqlConnection)
SqlDataAdapter(String, ConnectionString)
填充數據例子:

DataSet dataSet = new DataSet();
SqlConnection con = new SqlConnection("");
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText="select xxx from tb_xxx";
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
dataAdapter.Fill(dataSet);

填充后的數據可以使用SqlCommandBuilder進行增刪改查。

例子:

SqlConnection con = new SqlConnection(ConnectionString();
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select xxx from tb_xx");
DataSet ds =new DataSet();
da.Fill(ds);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da);
DataRow row = ds.Tables[0].NewRow();
row[0]="a";
row[1]="b";
ds.Tables[0].Rows.Add(row);
da.Update(ds);

SqlCommandBuilder 可以把DataSet增加的數據轉化為SQL語句用來更新數據庫。然后調用Update方法。

總結

因為現在使用的框架或著庫都已經封裝了ADO.NET,可能在日常工作中很少會再從頭開始編寫ADO.NET來連接數據庫,但是在.net面試中還是非常常見的,希望可以借此加深一下印象。另外,本人目前持有的是銀蕨簽證,可以在新西蘭求職9個月,期間如果找到相關專業工作,可直接轉2年的工作簽證,非常方便移民,該簽證每年全球發放300個,雖然還沒有working holiday簽證為大家所熟知,但是每年的爭搶還是很激烈的。需要了解相關事宜的可以給我留言。本人的第一篇博客,屬于整理資料,并非完全原創,如有哪方面不正確,還希望大神可以多多指正。

您可能感興趣的文章:
  • ADO.NET EF中的實體修改方法
  • ADO.NET 連接數據庫字符串小結(Oracle、SqlServer、Access、ODBC)
  • ADO.NET實體數據模型詳細介紹
  • ADO.NET中的五個主要對象的詳細介紹與應用
  • ADO.Net 類型化DataSet的簡單介紹
  • ADO.NET之連接池技術的使用詳解
  • ASP.NET中實現把Json數據轉換為ADO.NET DataSet對象
  • ADO.NET編程之基礎知識

標簽:崇左 南寧 青海 洛陽 贛州 平涼 汕尾 衢州

巨人網絡通訊聲明:本文標題《ADO.NET基礎知識匯總》,本文關鍵詞  ADO.NET,基礎知識,匯總,ADO.NET,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ADO.NET基礎知識匯總》相關的同類信息!
  • 本頁收集關于ADO.NET基礎知識匯總的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产日韩高清在线| 天使萌一区二区三区免费观看| 美女国产一区二区| 国产精品国产三级国产aⅴ原创| 欧美丰满少妇xxxxx高潮对白| 精品影视av免费| 午夜欧美2019年伦理| 亚洲伊人色欲综合网| 亚洲日本在线a| 亚洲人成人一区二区在线观看 | 亚洲午夜av在线| 综合欧美亚洲日本| 亚洲欧美电影院| 日本欧美一区二区| 国产曰批免费观看久久久| 国产91在线|亚洲| 欧美三级电影网| 精品盗摄一区二区三区| 亚洲视频免费在线观看| 久久嫩草精品久久久精品| 在线观看91视频| 国产日韩精品一区| 五月天欧美精品| 国产馆精品极品| 91.com视频| 亚洲免费伊人电影| 经典三级一区二区| 91精品啪在线观看国产60岁| 国产精品欧美一级免费| 1024亚洲合集| 蜜臀国产一区二区三区在线播放 | 亚洲天天做日日做天天谢日日欢| 天天综合日日夜夜精品| 91麻豆成人久久精品二区三区| 欧美精品久久99久久在免费线| 亚洲欧美日韩国产手机在线 | 99在线视频精品| 国产亚洲污的网站| 国产高清不卡二三区| 精品成人免费观看| 国产精品一二三四五| 久久一夜天堂av一区二区三区| 三级不卡在线观看| 日韩欧美一级特黄在线播放| 蜜桃久久久久久| 精品国产露脸精彩对白| 久久成人久久爱| 国产色婷婷亚洲99精品小说| 亚洲精品一二三四区| 色综合网色综合| 日本午夜一区二区| 久久久久久99久久久精品网站| 国产成人精品免费在线| 亚洲激情图片小说视频| 在线观看91精品国产麻豆| 另类中文字幕网| 一区精品在线播放| 欧美性生活一区| 精品亚洲porn| 一区二区三区丝袜| 国产午夜精品久久久久久免费视| 色就色 综合激情| 国产又黄又大久久| 亚洲不卡av一区二区三区| 日韩一区二区三区四区五区六区 | 成人美女视频在线观看18| 一区二区三区在线视频免费观看| 欧美一区二区观看视频| jvid福利写真一区二区三区| 午夜精品久久久久影视| 久久久国产精品麻豆| 欧美三级电影精品| 91在线免费播放| 国产高清精品久久久久| 韩国欧美国产1区| 麻豆一区二区在线| 一区二区三区欧美| 亚洲欧美一区二区三区国产精品| 久久免费精品国产久精品久久久久| 欧美日韩中文另类| 欧美日韩免费高清一区色橹橹| 大胆亚洲人体视频| 高清不卡一区二区| 成人黄色软件下载| 一本大道av一区二区在线播放| 成人激情视频网站| 99re这里只有精品首页| 色综合久久88色综合天天 | 久久一夜天堂av一区二区三区| 精品入口麻豆88视频| 久久综合久久综合亚洲| 91丝袜美女网| 精品一区二区三区日韩| 国产又粗又猛又爽又黄91精品| 奇米影视一区二区三区小说| 日韩精品三区四区| 国产精品亚洲午夜一区二区三区 | 欧美一区三区四区| 欧美精品一区二区在线播放| 中文字幕一区二区三区在线观看| 日韩欧美不卡在线观看视频| 中文字幕乱码亚洲精品一区| 日欧美一区二区| 色综合天天综合狠狠| 日韩免费一区二区| 亚洲aaa精品| eeuss鲁片一区二区三区| 69堂成人精品免费视频| 国产精品色噜噜| 高清beeg欧美| 日本一区二区综合亚洲| 九一九一国产精品| 精品国产凹凸成av人网站| 午夜激情综合网| 欧美精三区欧美精三区| 亚洲一区二区偷拍精品| 99精品久久久久久| 欧美激情艳妇裸体舞| 国产精品1区2区3区| 久久精品人人爽人人爽| 国产一区二区三区久久久 | 精品久久久久久综合日本欧美| 免费在线观看一区二区三区| 日韩视频免费直播| 粉嫩aⅴ一区二区三区四区| 精品1区2区在线观看| 一区二区三区四区中文字幕| 国产精品一区专区| 婷婷开心久久网| 亚洲综合男人的天堂| 欧美日韩国产一区| 国产在线不卡一区| 国产精品久久久久久久久免费相片 | 午夜欧美大尺度福利影院在线看| 亚洲综合丝袜美腿| 久久国产剧场电影| 国产精品色婷婷| 国产一区二区三区久久悠悠色av| 亚洲韩国一区二区三区| 日本韩国欧美在线| 精品国产乱码久久久久久久久| 国产欧美日韩视频一区二区| 一本大道久久a久久综合婷婷 | 激情综合色播五月| 91免费视频观看| 中文字幕中文字幕在线一区 | 天天综合色天天综合色h| 欧美电视剧免费全集观看| 一区二区在线观看视频在线观看| 国产寡妇亲子伦一区二区| 亚洲国产色一区| a级精品国产片在线观看| 久久这里只有精品视频网| 欧美在线|欧美| 亚洲妇熟xx妇色黄| 欧美精品vⅰdeose4hd| 成人高清视频免费观看| 亚洲国产经典视频| 色视频一区二区| 91免费国产在线观看| 亚洲精品亚洲人成人网| 欧美一区二区三区婷婷月色| 欧美日韩一区二区在线视频| 99久久国产综合精品色伊| 1024亚洲合集| 欧美成人a∨高清免费观看| 欧美日韩极品在线观看一区| 蜜桃视频在线观看一区| 中文字幕av在线一区二区三区| 国产日韩成人精品| av在线不卡网| 亚洲精品自拍动漫在线| 亚洲精选一二三| 国产无人区一区二区三区| 一本一道久久a久久精品| 欧美亚洲综合一区| 日本中文在线一区| 国产欧美一区二区在线观看| 国产亚洲成年网址在线观看| 91猫先生在线| 91浏览器入口在线观看| 欧美卡1卡2卡| 色天使久久综合网天天| 91偷拍与自偷拍精品| 精品国产乱码久久久久久影片| 欧美三级三级三级爽爽爽| 成人午夜电影网站| 日韩午夜激情免费电影| 91老司机福利 在线| 亚洲另类春色国产| 亚洲女人的天堂| 色婷婷av一区二区三区软件| 国产一区二区三区观看| 蜜桃精品在线观看| 91在线观看美女| 91欧美一区二区| 国产不卡在线一区| 久久中文娱乐网| 亚洲精品自拍动漫在线| 色综合激情五月|