国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ADO.NET數據庫

2019-11-14 15:46:56
字體:
來源:轉載
供稿:網友

asp.net提供了ADO.NET技術,它是ASP.NET應用程序與數據庫進行交互的一種技術。

ADO.NET技術把對數據庫的操作分為幾個步驟,并為每個步驟提供對象來封裝操作過程,從而使對數據庫的操作變得簡單易行。

ADO.NET組件通過以下兩個主要的組件將數據訪問與數據處理分離:

  1. ADO.NET體系結構的一個核心元素是.NET數據提供程序,它是專門為數據處理以及快速地只進、只讀訪問數據而設計的組件,包括Connection、Command、DataReader和DataAdapter對象的組件。

  2. DataSet是ADO.NET體系結構中另一個核心組件,它是專門為各種數據源的數據訪問獨立性而設計的,所以它可以用于多個不同的數據源、xml數據或管理應用程序的本地數據,如內存中的數據高速緩存。

基本的SQL

1.選擇數據

  SELECT語句語法:

    SELECT 列名1,列名2,列名3,...FROM 表名(SELECT * FROM 表名),例如:

      SELECT * FROM Student

      該SQL語句表示從Student表中選取所有的列。

    SELECT 列名1,列名2,列名3,...FROM 表名 ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC,列名3 ASC/DESC...(ASC表示升序,DESC表示降序)

      SELECT * FROM Student ORDER BY StuName DESC。

      該SQL語句表示從Student表中選取所有的列并按照StuName降序排序。

    SELECT 列名1,列名2,列名3,...FROM 表名 WHERE子句 ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC,列名3 ASC/DESC... (WHERE子句是條件子句,WHERE子句能夠對條件進行設置,只有滿足條件的行才會顯示到結果中)。

      SELECT * FROM Student WHERE StuClass=‘中藥一班’

    有時選擇條件不止一個,這時需要邏輯連接符把這些條件連接起來,常用的邏輯連接符有AND和OR,AND表示關系與,OR表示關系或。

      SELECT * FROM Student WHERE StuClass=‘中藥一班’OR StuClass=‘中藥二班’

2.插入數據

  INSERT INTO 表名(列名1,列名2,列名3,...) 

  VALUES(值1,值2,值3,...)

  向Student表中添加一條數據,SQL語句如下:

    INSERT INTO Student(StuName,StuClass,StuSex)

    VALUES(‘李瑩’,‘中藥三班’,‘女’)

  也可以采用下面的語句實現:

    INSERT INTO Student

    VALUES(‘李瑩’,‘中藥三班’,‘女’)

    此語句忽略了列名,此時會按照列在數據表中的排列順序逐個插入。在執行INSERT語句時值與列的數據類型必須一致,否則會報錯。

3.更新數據

  UPDATE 表名 SET

  列名1=值1,

  列名2=值2,

  ...

  WHERE子句

  更新Student表中的數據:

    UPDATE Student Set

    StuClass=“中藥四班”,

    WHERE StuName=“李瑩”

4.刪除數據

  DELETE FROM 表名 WHRER子句

在VS中執行數據查詢

  查詢數據可以使用SQL語句實現,也可以使用SQL SERVER提供的管理工具來生成和測試SQl語句。在VS中執行數據查詢的操作如下:

    1.在“服務器資源管理器”窗口中,找到“表”節點。

    2.右鍵單擊“表”節點,在彈出的菜單中選擇“新建查詢”。

    3.在彈出的“添加表”對話框中選擇要操作的表、視圖、函數、同義詞,單擊“添加”,在新建的查詢窗口中會顯示被選中的對象。

創建數據庫

  在編寫ASP.NET網站應用程序之前,首先要做的是設計和創建數據庫。

連接數據庫

  .NET Framework數據提供程序使用Connection對象提供與Microsoft SQL Server 的連接。

  SqlConnection連接字符串常用參數:

    1.Data Source:數據庫服務器的名稱。

    2.Initial Catalog:數據庫的名稱。

    3.Integrated Security:決定連接是否是安全的,取值可以是True、False或SSPI。

    4.User ID:SQL Server登錄帳戶。

    5.PassWord:SQL Server帳戶的登錄密碼。

創建數據庫連接

  

可以通過以下方式創建數據庫連接:

  1.使用Connection對象創建數據庫連接。

1 SqlConnection connection=new SqlConnection();2 connection.ConnectionString="server=localhost; Integrated Security=True;Initial Catalog=SuperMarket";
View Code

  2.使用連接字符串來初始化SqlConnection對象創建數據庫連接。

1 string connectionString = "Data Source=追風的蝸牛;Initial Catalog=Adrotator;Integrated Security=True";2 SqlConnection connection = new SqlConnection(connectionString);
View Code

  3.使用構造函數來初始化SqlConnection對象創建數據庫連接。

     構造函數

1 public class ConnectionString2 {3     public static string connectionString = "Data Source=追風的蝸牛;Initial Catalog=Adrotator;Integrated Security=True";4 }
View Code

  4.初始化SqlConnection對象,創建數據庫連接。

SqlConnection connection = new SqlConnection(ConnectionString.connectionString);
View Code

  5.獲取在配置文件中的<connectionStrings>節中利用鍵值對存儲的數據庫連接字符串,創建數據庫連接。

    利用鍵值對存儲數據庫連接字符串。

1 <connectionStrings >2     <add name="connection1" connectionString="Data Source=追風的蝸牛;Initial Catalog=Adrotator;Integrated Security=True"/>3 </connectionStrings>
View Code

    獲取配置文件中的數據庫連接字符串。

1 SqlConnection connection = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connection1"].ConnectionString.ToString());
View Code

查看連接信息

 1             try 2             { 3                 connection.Open(); 4                 Response.Write("服務器版本:" + connection.ServerVersion.ToString()); 5                 Response.Write("<br>數據庫名稱:" + connection.Database.ToString()); 6                 Response.Write("<br>數據庫連接:" + connection.State.ToString()); 7                 connection.Close(); 8             } 9             catch (Exception ex)10             {11                 Response.Write("連接錯誤!" + ex.Message.ToString());12             }13             finally14             {15                 connection.Close();16    }    
View Code

獲取數據

1.Command對象

  Command對象使用SELECT、INSERT、UPDATE、DELETE等SQL命令與數據源通信,此外,Command對象還可以調用存儲過程操作數據庫。

  創建Command對象的方法:

    1.創建Command對象,指定SQL命令,設置可利用的數據庫連接。

1 SqlCommand command = new SqlCommand();2 command.Connection = connection;3 command.CommandText = "select * from Advertisements";
View Code

    

    2.在創建Command對象時指定SQL命令和可利用的數據庫連接。

1 SqlCommand command = new SqlCommand("select * from Advertisements", connection);
View Code

2.DataReader對象 

  可以使用DataReader從數據庫中檢索只讀、只進的數據流。“只讀”,是指在數據閱讀器DataReader上不可更新、刪除、增加記錄。“只進”是指記錄的接收是順序進行且不可后退的。

  數據閱讀器DataReader接收到的數據是以數據庫的記錄為單位的。查詢結果在查詢執行時返回,并存儲在客戶端的網絡緩沖區中,直到用戶使用DataReader的Read方法對它們發出請求。

  使用DataReader可以提高應用程序的性能,原因是它只要數據可用就立即檢索數據,并且在默認情況下一次只在內存中存儲一行,減少了系統開銷。

  在創建一個Command對象的實例之后,可以通過對命令調用ExecuteReader方法來創建DataReader,該方法從在Command對象中指定的數據源檢索一些行,填充DataReader。

  使用

    1.獲取數據并綁定到控件中。

      在Default.aspx中:

 1     <div> 2         <asp:Label ID="Label1" Text="請選擇:" runat="server" /> 3         <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 4             <asp:ListItem Text="請選擇" Enabled="true"></asp:ListItem> 5          </asp:DropDownList> 6         <br /> 7         <asp:Label ID="Label2" runat="server" Text="廣告的詳細信息:" /> 8         <br /> 9         <asp:Label ID="Label3" runat="server" Height="200" Width="300" />10     </div>
View Code

      在Default.aspx.sc中:

 1  PRotected void Page_Load(object sender, EventArgs e) 2  { 3        if (!this.IsPostBack) 4        { 5            SqlCommand command = new SqlCommand("select AlternateText,ID  from Advertisements", connection); 6             SqlDataReader dataReader; 7             try 8             { 9                 connection.Open();10                 dataReader = command.ExecuteReader();11 12                 while (dataReader.Read())13                 {14                     ListItem listItem = new ListItem();15                     listItem.Text = dataReader["AlternateText"].ToString();16                     listItem.Value = dataReader["ID"].ToString();17                     DropDownList1.Items.Add(listItem);18                 }19                 dataReader.Close();20             }21             catch (Exception ex)22             {23                 Label3.Text = "讀取失敗" + ex.Message.ToString();24             }25             finally26             {27                 connection.Close();28             }29         }30 }
View Code

    2.獲取控件數據信息并查詢。

      在Default.aspx.sc中:

 1         protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 2         { 3             SqlConnection connection = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connection1"].ConnectionString.ToString()); 4             string selectSql = "select * from Advertisements where ID='" + DropDownList1.SelectedItem.Value + "'";//定義SQL語句獲取廣告信息 5  6             SqlCommand command = new SqlCommand(selectSql, connection); 7             SqlDataReader dataReader; 8             try 9             {10                 connection.Open();11                 dataReader = command.ExecuteReader();12                 dataReader.Read();13                 string stringText;14                 stringText ="ID:"+ dataReader["ID"].ToString() + "<br>" +"圖片地址:"+ dataReader["ImageUrl"].ToString() + "<br>" +"鏈接地址:"+ dataReader["NavigateUrl"].ToString() + "<br>" +"顯示頻率:"+ dataReader["Impressions"].ToString() + "<br>" +"描述信息:"+ dataReader["AlternateText"].ToString();15                 Label3.Text = stringText.ToString();16                 dataReader.Close();17 18             }19             catch (Exception ex)20             {21                 Label3.Text = "讀取失敗" + ex.Message.ToString();22             }23             finally24             {25                 connection.Close();26             }27         }
View Code

3.DataAdapter對象

  DataAdapter對象充當數據庫和ADO.NET對象模型中非連接對象之間的橋梁,能夠用來保存和檢索數據。DataAdapter對象類的Fill方法用于將查詢結果引入DataSet或DataTable中,以便能夠脫機處理數據。根據不同的數據源DataAdapter對象,可以分為四類:

    1.SqlDataAdapter:用于對SQL Server數據庫執行命令。

    2.OleDBDataAdapter:用于對支持OleDB的數據庫執行命令。

    3.OdbcDataAdapter:用于支持Odbc的數據庫執行命令。

    4.OracleDataAdapter:用于對Oracle數據庫執行命令。

  使用SqlDataAdapter的步驟:

    1. 建立數據庫連接。

    2. 建立SqlCommand對象,設置要執行的SQL語句

    3. 建立并實例化一個SqlDataAdapter對象。

    4. 建立一個DataSet對象,用于接收執行SQL命令返回的數據集。

    5. 填充數據集。

    6. 綁定數據控件。

    7. 關閉數據庫連接。

4.DataSet對象

  DataSet在ADO.NET對實現從數據庫抽取數據起到關鍵作用,數據從數據庫完成數據抽取后存放在DataSet中,是各種數據源中的數據在計算機內存中映射成的緩存,從某種意義上可以把DataSet可以看成是一個數據容器。

  DataSet也被稱為內存中的數據庫,因為在DataSet可以包含很多數據表以及數據表之間的關系。

  DataSet在客戶端實現讀取、更新數據庫等過程中起到了中間部件的作用。

  DataSet從數據源中獲取數據后就會斷開與數據源之間的連接。允許在DataSet中定義數據約束和表關系,增加、刪除和編輯記錄,還可以對DataSet中的數據進行查詢、統計等。當完成了各項操作以后還可以把DataSet中的數據送回數據源。DataSet的產生滿足了多層分布式程序的需要,它能夠在斷開數據源的情況下對存放在內存中的數據進行操作,這樣可以提高系統整體性能,而且有利于擴展。

  創建DataSet的方式

  

    1.建立一個空的數據集,然后再把建立的數據表放到該數據集里。

      DataSet dataSet = new DataSet();

    2.先建立數據表,然后再建立包含數據表的數據集。

      DataSet dataSet = new DataSet(“表名”);

  DataSet中經常使用的類

    1.DataTable。稱為數據表,用來存放數據。一個Dataset對象可以包含多個DataTable,每個DataTable可以包含多個DataRow和DataColumn。

      它的創建方式有兩種:

        1.數據加載DataSet時會自動創建DataTable。

        2.以編程方式創建DataTable的對象,然后將對象添加到DataSet的Tables集合中。

      從DataSet中提取DataTable

        DataSet dataset=new DataSet();

        DataTable dataTable=dataset.數據表名

    2.DataRow。數據表里的行,是給定DataTable中的一行數據(記錄)。DataRow對象的方法提供了對表中數據的增加、刪除、更新、查詢等功能。

      提取表中的一行數據(記錄)

        DataRow dataRow=DataTable.Row[n];

    3.DataColumn。數據表中的列,定義了數據表的數據結構。

      獲取某列的值需要在數據行的基礎上進行

        string str=dataRow.Column[“字段名稱”].ToString();

         或string str=dataRow.Column[“索引”].ToString();

    4.DataRelation。

      使用DataRelation通過DataColumn對象將兩個DataTable對象相互關聯,此類關系類似于關系數據庫中的主鍵/外鍵關系。關系是在父表和子表中匹配的列之間創建的,兩個列的數據類型必須相同。

      創建DataRelation時,首先要驗證是否可以創建關系。在將它添加到DataRelationCollection之后,通過禁止會使關系無效的任何更改來維持此關系。在創建DataRelation和將其添加到DataRelationCollection之間的這段時間,可以對父行或子行進行其他更改,但是會使關系失效,會產生異常。

  使用

    在配置文件中添加以下內容:

1 <connectionStrings >2     <add name="connection1" connectionString="Data Source=追風的蝸牛;Initial Catalog=Adrotator;Integrated Security=True"/>3 </connectionStrings>
View Code

    在Default.aspx.cs中添加以下內容:

 1 <div> 2         <asp:Label ID="Label1" Text="請選擇:" runat="server" /> 3         <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 4             <asp:ListItem Text="請選擇" Enabled="true"></asp:ListItem> 5          </asp:DropDownList> 6         <br /> 7         <asp:Label ID="Label2" runat="server" Text="廣告的詳細信息:" /> 8         <br /> 9         <asp:Label ID="Label3" runat="server" Height="200" Width="300" />10 </div>
View Code

    Default.aspx.cs中的代碼如下:

 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.SqlClient; 5 using System.Linq; 6 using System.Text; 7 using System.Web; 8 using System.Web.UI; 9 using System.Web.UI.WebControls;10 11 namespace Webapplication112 {13     public partial class Default : System.Web.UI.Page14     {15         private static DataSet dataSet = new DataSet();16         public class ConnectionString17         {18             public static string connectionString = "Data Source=追風的蝸牛;Initial Catalog=Adrotator;Integrated Security=True";19         }20 21         protected void Page_Load(object sender, EventArgs e)22         {23             if (!this.IsPostBack)24             {25                 fillList();26             }27         }28 29         protected void fillList()30         {31             SqlConnection connection = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connection1"].ConnectionString.ToString());32             SqlCommand command = new SqlCommand("select * from Advertisements", connection);33             SqlDataAdapter dataAdapter = new SqlDataAdapter(command);34             //打開數據庫連接,讀取信息35             try36             {37                 connection.Open();38                 //填充Dataset39                 dataAdapter.Fill(dataSet, "Advertisements");40             }41             catch (Exception ex)42             {43                 Label3.Text = "讀取錯誤" + ex.Message.ToString();44             }45             finally46             {47                 connection.Close();48             }49             foreach (DataRow row in dataSet.Tables["Advertisements"].Rows)50             {51                 ListItem item = new ListItem();52                 item.Text = row["AlternateText"].ToString();53                 item.Value = row["ID"].ToString();54                 DropDownList1.Items.Add(item);55             }56         }57 58         protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)59         {60             try61             {62                 DataRow[] dataRow = dataSet.Tables["Advertisements"].Select("ID=" + DropDownList1.SelectedItem.Value);63                 string stringText = "ID:" + dataRow[0]["ID"].ToString() + "<br/>圖片地址:" + dataRow[0]["ImageUrl"].ToString() + "<br/>鏈接地址:" + dataRow[0]["NavigateUrl"].ToString() + "<br/>顯示頻率:" + dataRow[0]["Impressions"].ToString() + "<br/>描述:" + dataRow[0]["AlternateText"].ToString();64                 Label3.Text = stringText.ToString();65             }66             catch (Exception ex)67             {68                 Label3.Text = "讀取失敗" + ex.Message.ToString();69             }70         }71     }72 }
View Code


 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博白县| 永安市| 夹江县| 三穗县| 松潘县| 石柱| 江门市| 普兰店市| 泰宁县| 富阳市| 涞源县| 富平县| 梅州市| 庆安县| 景宁| 泰和县| 出国| 漳平市| 子长县| 山东| 鄂托克旗| 南乐县| 聊城市| 陆河县| 衡阳市| 桂平市| 东海县| 榆树市| 凤翔县| 日土县| 洪江市| 龙游县| 会泽县| 文成县| 望谟县| 嘉义县| 温宿县| 温宿县| 仁布县| 增城市| 二连浩特市|