Asp.net中GridView詳解《轉》

来源:https://www.cnblogs.com/Tanghongchang/archive/2018/01/31/8388864.html
-Advertisement-
Play Games

ASP.NET伺服器控制項GridView 1 ASP.NET 伺服器控制項GridView使用 本教程不介紹伺服器端控制項的呈現,事件處理,狀態等理論知識,只介紹伺服器端控制項的使用操作,如果您對伺服器控制項的知識感興趣,請參閱《ASP.NET伺服器控制項高級編程》 閱讀本文時最好和 文檔 《ASP.NET服 ...


 ASP.NET伺服器控制項GridView

1         ASP.NET 伺服器控制項GridView使用

本教程不介紹伺服器端控制項的呈現,事件處理,狀態等理論知識,只介紹伺服器端控制項的使用操作,如果您對伺服器控制項的知識感興趣,請參閱《ASP.NET伺服器控制項高級編程》

閱讀本文時最好和 文檔 《ASP.NET伺服器控制項使用之GridView數據源ObjectDataSource》http://blog.csdn.net/huc87/archive/2009/03/17/3998185.aspx一起閱讀。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 

1.1         GridView概述

顯示表格數據是軟體開發中的一個周期性任務。ASP.NET 提供了許多工具來在網格中顯示表格數據,例如 GridView 控制項。通過使用 GridView 控制項,您可以顯示、編輯和刪除多種不同的數據源(例如資料庫、XML 文件和公開數據的業務對象)中的數據。

可以使用 GridView 來完成以下操作:

  • 通過數據源控制項自動綁定和顯示數據。
  • 通過數據源控制項對數據進行選擇、排序、分頁、編輯和刪除。

另外,還可以通過以下方式自定義 GridView 控制項的外觀和行為:

  • 指定自定義列和樣式。
  • 利用模板創建自定義用戶界面 (UI) 元素。
  • 通過處理事件將自己的代碼添加到 GridView 控制項的功能中。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

1.2         GridView數據綁定

1.2.1  概述

GridView 控制項提供了兩個用於綁定到數據的選項:

  • 使用 DataSourceID 屬性進行數據綁定,此選項讓您能夠將 GridView 控制項綁定到數據源控制項。建議使用此方法,因為它允許 GridView 控制項利用數據源控制項的功能並提供了內置的排序、分頁和更新功能。
  • 使用 DataSource 屬性進行數據綁定,此選項使您能夠綁定到包括 ADO.NET 數據集和數據讀取器在內的各種對象。此方法需要為所有附加功能(如排序、分頁和更新)編寫代碼。

當使用 DataSourceID 屬性綁定到數據源時,GridView 控制項支持雙向數據綁定。除可以使該控制項顯示返回的數據之外,還可以使它自動支持對綁定數據的更新和刪除操作。

1.2.2  使用DataSourceID屬性進行數據綁定

請參見《ASP.NET伺服器控制項使用之GridView數據源ObjectDataSource》 http://blog.csdn.net/huc87/archive/2009/03/17/3998185.aspx

1.2.3  使用BoundField標簽來顯示綁定的數據

數據綁定控制項(例如 GridView 和 DetailsView)使用 BoundField 類以文本顯示欄位的值。根據在其中使用 BoundField 對象的數據綁定控制項,該對象會以不同的方式顯示。例如,GridView 控制項將 BoundField 對象顯示為一列,而 DetailsView 控制項則將該對象顯示為一行。

若要指定在 BoundField 對象中顯示的欄位,

請將 DataField 屬性設置為欄位的名稱。

通過將 HtmlEncode 屬性設置為 true,可以在顯示欄位的值之前對其進行 HTML 編碼。

通過設置 DataFormatString 屬性,可以將自定義格式化字元串應用到欄位的值。預設情況下,只有當數據綁定控制項處於只讀模式時,格式化字元串才能應用到欄位值。當數據綁定控制項處於編輯模式時,

若要將格式化字元串應用到顯示的值,請將 ApplyFormatInEditMode 屬性設置為 true。

如果欄位的值為空,則可以通過設置 NullDisplayText 屬性顯示自定義標題。

通過將 ConvertEmptyStringToNull 屬性設置為 true,BoundField 對象,也可以將空字元串 ("") 欄位值自動轉換為空值。

通過將 Visible 屬性設置為 false,可以在數據綁定控制項中隱藏 BoundField 對象。

若要防止欄位的值在編輯模式中被修改,請將 ReadOnly 屬性設置為 true。

在支持插入記錄的數據綁定控制項(例如 DetailsView 控制項)中,通過將 InsertVisible 屬性設置為 false,可以隱藏 BoundField 對象。這種情況通常出現在想要在插入模式中隱藏自動生成的鍵欄位時。

可以自定義 BoundField 對象的標頭和腳註部分。若要在標頭或腳註部分顯示標題,請分別設置 HeaderText 或 FooterText 屬性。可以通過設置 HeaderImageUrl 屬性來顯示圖像,而不是在標頭部分中顯示文本。

通過將 ShowHeader 屬性設置為 false,可以將標頭部分隱藏在 BoundField 對象中。

您還可以通過為欄位的不同部件設置樣式屬性來自定義 BoundField 對象的外觀(字體顏色、背景顏色等)。下表列出了不同的樣式屬性。

樣式屬性

說明

ControlStyle

BoundField 對象的子 Web 伺服器控制項的樣式設置。

FooterStyle

BoundField 對象的腳註部分的樣式設置。

HeaderStyle

BoundField 對象的標頭部分的樣式設置。

ItemStyle

BoundField 對象中數據項的樣式設置。

 

1.2.4  使用TemplateField標簽來顯示自定義內容的欄位

數據綁定控制項(如 GridView 和 DetailsView)使用 TemplateField 類來為每個顯示的記錄顯示自定義內容。需要顯示某個預定義的數據控制項欄位(如 BoundField)未提供的數據綁定控制項中的內容時,使用 TemplateField 類來創建自定義用戶界面 (UI)。根據在其中使用 TemplateField 對象的數據綁定控制項,該對象會以不同的方式顯示。例如,GridView 控制項將 TemplateField 對象顯示為一列,而 DetailsView 控制項則將該對象顯示為一行。

可以使用下表中列出的模板為 TemplateField 對象的不同部分定義自定義模板。

模板

說明

AlternatingItemTemplate

為 TemplateField 對象中的交替項指定要顯示的內容。

EditItemTemplate

為 TemplateField 對象中處於編輯模式中的項指定要顯示的內容。

FooterTemplate

為 TemplateField 對象的腳註部分指定要顯示的內容。

HeaderTemplate

為 TemplateField 對象的標頭部分指定要顯示的內容。

InsertItemTemplate

為 TemplateField 對象中處於插入模式中的項指定要顯示的內容。只有 DetailsView 控制項支持該模板。

ItemTemplate

為 TemplateField 對象中的項指定要顯示的內容。

 

1.2.5  演練:GridView顯示數據

本演練假定你已經做完《 ASP.NET伺服器控制項使用之GridView數據源ObjectDataSource 》(http://blog.csdn.net/huc87/archive/2009/03/17/3998185.aspx)中的 (演練ObjectDataSource控制項),因為本演練是在綁定數據源基礎上的顯示數據。

使用BoundField顯示數據

1.         在C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ObjectDataSourceTest下找到ObjectDataSourceTest.sln,雙擊打開Visual studio 2008

 

2.         打開Default.aspx設計器,點擊坐下放 “源”,打開了源碼編輯器,找到asp:GridView標簽。

asp:GridView標簽下的代碼好像是這樣

<asp:GridView ID="EmployeesGridView" 

DataSourceID="EmployeesObjectDataSource" 

AutoGenerateColumns="False"

AllowSorting="True"

AllowPaging="True"

PageSize="2"

DataKeyNames="Employee_ID" 

RunAt="server" >

<HeaderStyle backcolor="lightblue" forecolor="black"/>

<Columns>                

<asp:ButtonField Text="Details"

HeaderText="Show Details"

CommandName="Select"/>  

<asp:BoundField DataField="Employee_ID" HeaderText="Employee ID" SortExpression="Employee_ID" />

<asp:BoundField DataField="Employee_Name"  HeaderText="Employee Name" SortExpression="Employee_Name" />

<asp:BoundField DataField="Age"   HeaderText="Age" SortExpression="Age" />                    

</Columns>                

</asp:GridView>
View Code

   BoundField指定GridView表格下的一列,我們就那

<asp:BoundField DataField="Employee_ID" HeaderText="Employee ID" SortExpression="Employee_ID" /> 來說,

DataField 屬性指定BoundField列綁定sql “SELECT Employee_ID, Employee_Name, Age, Login_ID, Login_Password FROM employee_table_2”中的哪一列。

HeaderText屬性指明顯示的列名,SortExpression表示點擊該列名時重新排序的欄位

 

3.         按Ctrl+F5運行,您將看到以下頁面

 

 

使用TemplateField顯示數據

1.         在C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\ObjectDataSourceTest下找到ObjectDataSourceTest.sln,雙擊打開Visual studio 2008

 

2.         打開Default.aspx設計器,點擊坐下放 “源”,打開了源碼編輯器,找到asp:GridView標簽。在asp:GridView標簽下的Column下加上如下代碼: 

<asp:TemplateField>

<HeaderTemplate>Login_Info</HeaderTemplate>

<ItemTemplate>

Login ID:<%#DataBinder.Eval(Container.DataItem, "Login_ID") %> <br />Login Password:<%#DataBinder.Eval(Container.DataItem, "Login_Password") %> 

</ItemTemplate>

</asp:TemplateField>
View Code

   一切搞定之後代碼開起來是這樣:

<asp:GridView ID="EmployeesGridView" 

DataSourceID="EmployeesObjectDataSource" 

AutoGenerateColumns="False"

AllowSorting="True"

AllowPaging="True"

PageSize="2"

DataKeyNames="Employee_ID" 

RunAt="server" >

<HeaderStyle backcolor="lightblue" forecolor="black"/>

<Columns>                

<asp:ButtonField Text="Details"HeaderText="Show Details"

CommandName="Select"/>  

<asp:BoundField DataField="Employee_ID" HeaderText="Employee ID" SortExpression="Employee_ID" />

<asp:BoundField DataField="Employee_Name"  HeaderText="Employee Name" SortExpression="Employee_Name" />

<asp:BoundField DataField="Age"   HeaderText="Age" SortExpression="Age" />  

<asp:TemplateField>

<HeaderTemplate>Login_Info</HeaderTemplate>

<ItemTemplate>Login ID:<%#DataBinder.Eval(Container.DataItem, "Login_ID") %> <br />Login Password:<%#DataBinder.Eval(Container.DataItem, "Login_Password") %> 

</ItemTemplate>

</asp:TemplateField>                  

</Columns>                

 </asp:GridView>
View Code

    DataBinder.Eval 方法 (Object, String)

在運行時計算數據綁定表達式。

參數

container

表達式根據其進行計算的對象引用。此標識符必須是以頁的指定語言表示的有效對象標識符。

expression

從 container 到要放置在綁定控制項屬性中的公共屬性值的導航路徑。此路徑必須是以點分隔的屬性或欄位名稱字元串,如 C# 中的 "Tables[0].DefaultView.[0].Price" 或 Visual Basic 中的 "Tables(0).DefaultView.(0).Price"。

返回值

Object,它是數據綁定表達式的計算結果。

按Ctrl+F5,運行,如果一切正常,您應該看到如下頁面

 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

1.3         GridView數據排序

GridView 控制項提供了內置排序功能,無需任何編碼。您可以通過為列設置自定義 SortExpression 屬性值並使用 Sorting 和 Sorted 事件,進一步自定義 GridView 控制項的排序功能。

1.3.1  GridView控制項的排序原理

GridView 控制項不自己執行列排序,而是依賴數據源控制項來代表它執行排序。該控制項提供用於排序的用戶界面 (UI),如顯示在網格每一列最上方的 LinkButton 控制項。但是,GridView 控制項依賴於它所綁定到的數據源控制項的數據排序功能。

如果綁定的數據源控制項可以排序數據,則選擇數據後,GridView 控制項可以通過將 SortExpression 傳遞給數據源與該數據源控制項進行交互並請求排序後的數據。不是所有的數據源控制項都支持排序;例如,XmlDataSource 控制項就不支持排序。但如果數據源控制項支持排序,GridView 就可以利用它。下麵的列表描述了數據源控制項和支持排序所需的配置:

l  如果 SqlDataSource 和 AccessDataSource 控制項的 DataSourceMode 屬性設置為 DataSet,或 SortParameterName 屬性設置為 DataSet 或 DataReader,則這兩個控制項可以排序。

l  如果ObjectDataSource 控制項的 SortParameterName 屬性設置為基礎對象所支持的屬性值,則該控制項可以排序。

1.3.2  GridView控制項的排序過程

通過將 GridView 控制項的 AllowSorting 屬性設置為 true,即可啟用該控制項中的預設排序行為。將此屬性設置為 true 會使 GridView 控制項將 LinkButton 控制項呈現在列標題中。此外,該控制項還將每一列的 SortExpression 屬性隱式設置為它所綁定到的數據欄位的名稱。例如,如果網格所包含的一列顯示的是 Northwind 示例資料庫中“Employees”表的 City 列,則該列的 SortExpression 屬性將被設置為 City。

在運行時,用戶可以單擊某列標題中的 LinkButton 控制項按該列排序。單擊該鏈接會使頁面執行回發並引發 GridView 控制項的 Sorting 事件。排序表達式(預設情況下是數據列的名稱)作為事件參數的一部分傳遞。Sorting 事件的預設行為是 GridView 控制項將排序表達式傳遞給數據源控制項。數據源控制項執行其選擇查詢或方法,其中包括由網格傳遞的排序參數。

執行完查詢後,將引髮網格的 Sorted 事件。此事件使您可以執行查詢後邏輯,如顯示一條狀態消息等。最後,數據源控制項將 GridView 控制項重新綁定到已重新排序的查詢的結果。

GridView 控制項不檢查數據源控制項是否支持排序;在任何情況下它都會將排序表達式傳遞給數據源。如果數據源控制項不支持排序並且由 GridView 控制項執行排序操作,則 GridView 控制項會引發 NotSupportedException 異常。可以用 Sorting 事件的處理程式捕獲此異常,並檢查數據源以確定數據源是否支持排序,還是使用自己的排序邏輯進行排序。

1.3.3  控制對個別列的排序

通過設置網格的 AllowSorting 屬性,您可以按預設方式對列進行排序。將個別列的 SortExpression 屬性設置為空字元串 (""),可以禁用對個別欄位(BoundColumn或 TemplateColumn 欄位)的排序。

 

1.3.4  演練:GridView排序

見上一節演練

 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

1.4         GridView數據排序

ObjectDataSource 控制項處理分頁的方式是:設置 ObjectDataSource 的 EnablePaging、StartRowIndexParameterNameMaximumRowsParameterName 和 SelectCountMethod 屬性,並用正確的參數在業務對象中定義選擇方法。當 EnablePaging 屬性設置為 true 時,SelectParameters 集合包含兩個額外的參數,一個用於請求的第一行,另一個用於請求的行數。這兩個參數的名稱由 StartRowIndexParameterName 和 MaximumRowsParameterName 屬性定義。Select 方法應該返回從指定的索引處開始的請求的行數。因為數據可能不是按頁大小平均分割的,所以最後一頁可能包含較少的行。因此,請求的行數實際上是返回的最大行數。

在關聯的數據綁定控制項上啟用了分頁時,數據綁定控制項用起始索引和所需的行數調用 Select 方法。此外,如果設置了 SelectCountMethod 屬性,數據綁定控制項在呈現頁導航控制項前調用此方法。例如,如果 GridView 控制項啟用了頁大小為 5 的分頁,而 SelectCountMethod 屬性指定的方法返回 20,則在頁導航中僅顯示 4 頁。

SelectCountMethod 屬性標識用於檢索總行數的業務對象方法,以支持數據源分頁。僅當 EnablePaging 屬性設置為 true 時,才計算 SelectCountMethod 屬性。

 

 

 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

1.5         GridView數據修改

1.5.1  啟用內置編輯功能

您可以通過以下任一方式啟用 GridView 控制項的內置編輯或刪除功能:

將 AutoGenerateEditButton 屬性設置為 true 以啟用更新,將 AutoGenerateDeleteButton 屬性設置為 true 以啟用刪除。

添加一個 CommandField,並將其 ShowEditButton 屬性設置為 true 以啟用更新,將其 ShowDeleteButton 屬性設置為 true 以啟用刪除。

創建一個 TemplateField,其中 ItemTemplate 包含多個命令按鈕,要進行更新時可將 CommandName 設置為“Edit”,要進行刪除時可設置為“Delete”。有關更多信息,請參見在GridView Web 伺服器控制項中創建自定義列

1.5.2  如何在GridView中進行編輯

GridView 控制項可以顯示一個用戶界面 (UI),讓用戶能夠編輯各行的內容。通常,可編輯的網格中會有一列包含一個按鈕或鏈接,用戶可以通過單擊該按鈕或鏈接將所在的行置於編輯模式下。(預設情況下,按鈕標題是“編輯”。)

用戶保存更改時,GridView 控制項將更改和主鍵信息傳遞到由 DataSourceID 屬性標識的數據源控制項,從而調用適當的更新操作。例如,SqlDataSource 控制項使用已更改的數據作為參數值執行 SQL Update 語句。ObjectDataSource 控制項調用其更新方法,並將更改作為參數傳遞給方法調用。

GridView 控制項在三個字典集合中將值傳遞到數據源以進行更新或刪除操作:Keys 字典、NewValues 字典和 OldValues 字典。可以使用傳遞到 GridView 控制項的更新或刪除事件的參數訪問每個字典。

Keys 字典包含唯一地標識要更新或刪除的記錄的欄位名稱和欄位值,並且始終包含鍵欄位的原始值。若要指定哪些欄位放置在 Keys 字典中,可將 DataKeyNames 屬性設置為用逗號分隔的、用於表示數據主鍵的欄位名稱的列表。DataKeys 集合會用與為 DataKeyNames 屬性指定的欄位關聯的值自動填充。

註意    DataKeyNames 屬性中指定的欄位的原始主鍵值存儲在視圖狀態中。如果主鍵值中包含敏感信息,則應通過將頁的 ViewStateEncryptionMode 屬性設置為 Always 來加密視圖狀態的內容。

NewValues 字典包含正在編輯的行中的輸入控制項的當前值。OldValues 字典包含除鍵欄位以外的任何欄位的原始值,鍵欄位包含在 Keys 字典中。

數據源控制項使用 Keys、NewValues 和 OldValues 字典中的值作為更新或刪除命令的參數。有關如何根據為綁定值創建的字典來創建數據源控制項參數的信息,請參見數據源控制項如何為數據綁定欄位創建參數

在通過處理 RowUpdating 或 RowDeleting 事件將任何這些字典的內容傳遞到數據源之前,可以對其進行檢查或自定義。完成更新或刪除後,GridView 控制項會引發其 RowUpdated 或 RowDeleted 事件。這些事件允許執行查詢後邏輯(如完整性檢查)。

完成更新或刪除並引發了所有事件之後,GridView 將重新綁定到數據源控制項以顯示已更新的數據。

 

1.5.3  演練:在Gridview中進行編輯

本演練顯示瞭如何為 Microsoft Visual Studio 2008 ASP.NET 網站編輯刪除GridView。

先決條件

本演練假定您可以連接到 Oracle DataBase 實例,並且已建立EMPLOYEE_TABLE_2

表。您還必須對運行 Microsoft Internet Information Services (IIS) 5.0 版或更高版本的伺服器具有訪問許可權,並具有創建 ASP.NET 網頁的許可權。

          EMPLOYEE_TABLE_2建表 

create table EMPLOYEE_TABLE_2

(

EMPLOYEE_ID    NUMBER,

EMPLOYEE_NAME  VARCHAR2(20),

AGE            NUMBER,

DEPARTMENT_ID  NUMBER,

PROJECT_ID     NUMBER,

LOGIN_ID       VARCHAR2(20),

LOGIN_PASSWORD VARCHAR2(20)

)

tablespace USERS

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

  );
View Code

 創建新的網站

 

1.      在“文件”菜單中,指向“新建”,選擇“網站”。

  

2.      在“新建網站”對話框中,選擇“ASP.NET 網站”。

3.      在“語言”列表中,選擇 Visual C#,再單擊“確定”。

 

3.         在“位置”框中,保留選定的預設 HTTP,然後輸入網站根目錄的位置,使用“瀏覽”導航及創建新的文件夾(如果需要)。單擊“確定”。

4.         打開Default.aspx設計器,點擊坐下放 “源”,打開了源碼編輯器,Ctrl+A全選

刪除系統生成的代碼,替換為以下內容 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>無標題頁</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 

        DataSourceID="SqlDataSource1" Height="278px" Width="675px" 

        DataKeyNames="employee_id" onrowupdating="GridView1_RowUpdating">

        <Columns>

            <asp:CommandField ShowEditButton="True" />

            <asp:CommandField ShowDeleteButton="true" />

            <asp:TemplateField>

            <ItemTemplate>

            <%#Eval("employee_name") %>

            </ItemTemplate>

            <EditItemTemplate><asp:TextBox runat="server" Text='<%#Eval("employee_name")%>' ID="EmployeeName"></asp:TextBox></EditItemTemplate>

            </asp:TemplateField>

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 

        ConnectionString="<%$ ConnectionStrings:DataAccess %>" 

        ProviderName="<%$ ConnectionStrings:DataAccess.ProviderName %>" 

        SelectCommand="select * from employee_table_2" UpdateCommand="update employee_table_2 set employee_name=:employee_name where employee_id=:employee_id"

         DeleteCommand="delete from employee_table_2 where employee_id=:employee_id">

    </asp:SqlDataSource>

    </div>

    </form>

</body>

</html>
View Code

 5.         打開Default.aspx.cs

Ctrl+A全選,刪除系統生成代碼,替換為以下代碼:

Code

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

 

public partial class _Default : System.Web.UI.Page 

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

    {

        int index = GridView1.EditIndex;

        GridViewRow row = GridView1.Rows[index];

 

        // Get the controls that contain the updated values. In this

        // example, the updated values are contained in the TextBox 

        // controls declared in the edit item templates of each TemplateField 

        // column fields in the GridView control.

        TextBox EmployeeName = (TextBox)row.FindControl("EmployeeName");

 

        // Add the updated values to the NewValues dictionary. Use the

        // parameter names declared in the parameterized update query 

        // string for the key names.

        e.NewValues["employee_name"] = EmployeeName.Text;

    }

}
View Code

   6.          在web.config中配置資料庫連接

1)      什麼是web.config

可擴展的基礎結構是   ASP.NET   配置系統的一大特色,該基礎結構使您可以在最初部署   ASP.NET   應用程式時定義配置設置,以便可以隨時添加或修改這些配置設置,同時對運作著的   Web   應用程式和伺服器產生的影響也將被減至最小。

2)      配置連接

在web.config的<configuration></configuration>下加上

<connectionStrings>

<add name="ConnectionString" connectionString="Data Source=HCDB;Persist Security Info=True;User ID=huchen;Password=huchen;Unicode=True" providerName="System.Data.OracleClient"/>

</connectionStrings>

  其中Data Source是指tns中的Host String, User ID是oracle登陸用戶名,Password是oracle登陸密碼。providerName是數據提供者。

7.         按Ctrl+F5啟動運行,如果一切順利,您講看到以下頁面:

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • hello world必備-》print函數 print(): 作用: 列印函數,列印數據到屏幕中 參數列表: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 參數解釋: value,...,代表可以有多個要列印的... ...
  • 思路:能夠向四個方向前進,同時前進步數不超過m。那麼,在遍歷的時候運用一層迴圈將不超過m步的都一一列舉出來。    同時,在遍歷的過程中需要記錄數據形成記憶是搜索。 ...
  • 近來想用pygame做做游戲,在 xishui 大神的目光博客中學了學這東西,就上一段自己寫的飛機大戰的代碼,主要是對鍵盤控制飛機的移動做了相關的優化 在這裡,飛機的偏移量之所以設置四個而不是兩個,是因為如果設置的是兩個,即控制x和y軸,那麼飛機控制的方向只能是x軸或y軸, 就比如說,當按住a鍵的時 ...
  • 類的屬性 構造函數 LinkedList()型構造函數 LinkedList(Collection)型構造函數 核心函數分析 add(E e)函數 linklast(E e)函數分析 addLast函數的實際調用 linkFirst(E e)函數 addFirst函數的實際調用 add(int in ...
  • 1.file.open(''test.txt'',''r+'',encoding='''UTF-8') 以r+方式打開一個文件test.txt,編碼類型UTF-8 2.file.close() 關閉文件 3.file.write(str) 寫入文件,這裡寫入的類型為str 4.flie.readli ...
  • 在這篇短文中,我將向您介紹如何ASP.NET Core Razor頁面中禁用防偽令牌驗證。 Razor頁面是ASP.NET Core 2.0中增加的一個頁面控制器框架,用於構建動態的、數據驅動的網站;支持跨平臺開發,可以部署到Windows,Unix和Mac操作系統。 跨站點請求偽造(也稱為XSRF ...
  • 什麼是Kestrel伺服器 Kestrel是開源的(GitHub提供的源代碼),事件驅動的非同步I / O伺服器,用於在任何平臺上托管ASP.NET應用程式。這是一個監聽伺服器和一個命令行界面。您將偵聽伺服器安裝在Windows或Linux伺服器上,併在電腦上安裝命令行界面(安裝.netcore會自 ...
  • GridView控制項的屬性 屬性 描述 AllowPaging 指示該控制項是否支持分頁。 AllowSorting 指示該控制項是否支持排序。 AutoGenerateColumns 指示是否自動地為數據源中的每個欄位創建列。預設為true。 AutoGenerateDeleteButton 指示該控 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...