新聞中心
作為.NET開發(fā)人員,我們常常面對的一個問題是如何高效地加載大量的數(shù)據(jù),特別是當數(shù)據(jù)很大時。這個問題非常關(guān)鍵,因為它會嚴重影響應用程序的性能和穩(wěn)定性。在這篇文章中,我們將介紹如何讓.NET加載大數(shù)據(jù),并提高應用程序的性能。

站在用戶的角度思考問題,與客戶深入溝通,找到欒城網(wǎng)站設(shè)計與欒城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋欒城地區(qū)。
1.使用數(shù)據(jù)分頁
數(shù)據(jù)分頁是一種常用的技術(shù),它可以將大量數(shù)據(jù)分割成多個小塊,從而減少網(wǎng)絡傳輸?shù)臄?shù)據(jù)量和數(shù)據(jù)處理的時間。通過使用數(shù)據(jù)分頁,我們可以將數(shù)據(jù)分散到多個頁面或分塊中,每次只加載當前頁面或分塊中的數(shù)據(jù),而不需要一次性加載整個數(shù)據(jù)。這樣可以有效減少數(shù)據(jù)傳輸?shù)膲毫蛿?shù)據(jù)傳輸?shù)臅r間,提高應用程序的性能。
在.NET中,我們可以使用PaginatedList類來實現(xiàn)數(shù)據(jù)分頁。該類提供了一個分頁器,用于分割數(shù)據(jù),并提供了一些常用的數(shù)據(jù)分頁操作,如跳轉(zhuǎn)到下一頁、上一頁、之一頁和最后一頁等。
2.使用異步數(shù)據(jù)加載
異步數(shù)據(jù)加載是一種用于處理大量數(shù)據(jù)的有效方法,可以讓我們在數(shù)據(jù)加載時不阻塞主線程。當我們在.NET中加載大量數(shù)據(jù)時,應該使用異步數(shù)據(jù)加載技術(shù),這樣可以讓應用程序在加載數(shù)據(jù)時保持響應性,并且能夠處理其他事件。
.NET提供了異步數(shù)據(jù)加載的各種方法,包括使用async和awt關(guān)鍵字實現(xiàn)異步方法、使用后臺線程執(zhí)行數(shù)據(jù)加載任務、使用Task類等。通過使用這些方法,我們可以輕松地實現(xiàn)異步數(shù)據(jù)加載,提高應用程序的性能。
3.使用索引
索引是一種常用的技術(shù),用于快速查找數(shù)據(jù)。當我們需要處理大量數(shù)據(jù)時,應該使用索引來提高數(shù)據(jù)的查找效率。在.NET中,我們可以使用內(nèi)置的索引技術(shù),比如Dictionary、List、SortedList和類等等。
在使用索引時,應該避免使用過多的內(nèi)存,因為過多的索引會導致應用程序的性能下降。因此,在選擇數(shù)據(jù)結(jié)構(gòu)和索引時,需要根據(jù)數(shù)據(jù)的特征進行合理的選擇。
4.使用緩存
緩存是一種常用的技術(shù),用于在內(nèi)存中存儲數(shù)據(jù),從而提高數(shù)據(jù)的訪問速度。當我們需要頻繁訪問某些數(shù)據(jù)時,應該使用緩存技術(shù),將數(shù)據(jù)存儲在內(nèi)存中,以便快速訪問。
在.NET中,我們可以使用MemoryCache類來實現(xiàn)緩存。該類提供了各種方法,用于添加、移除和獲取緩存數(shù)據(jù)。通過使用MemoryCache類,我們可以輕松地實現(xiàn)緩存技術(shù),提高應用程序的性能。
結(jié)論
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應式網(wǎng)站制作,設(shè)計師量身打造品牌風格,熱線:028-86922220ASP.NET如何讀取POSTGRESQL數(shù)據(jù)庫中的數(shù)據(jù)
我也得上線才能看到問題吧…………排前十用query就行喊伏了SELECT TOP 10 FROM 表 WHERE 篩選字段=’要求’ ORDER BY 排序字段OleDbConnection conn = new OleDbConnection(connectionString);OleDbCommand comm = new OleDbCommand(conn, query);conn.Open(); //這句經(jīng)常忘,剛剛就忘了OleDbDataReader dr = comm.Excute();while(dr.read()){ Console.Writeline(dr(“字段名”).ToString()); //想鄭盯攜怎么輸出就怎么則老輸出 }conn.Close();//這句也經(jīng)常忘,剛剛也給忘了
asp.net跟一般.net在連接數(shù)據(jù)庫方面沒啟世有區(qū)別由于.NET沒有專門為Postgre專門封裝,所以只能使用通用的OleDb。
(VS.80).aspx介紹了如何使用OleDb連接將連接字符氏漏串改成“Driver={PostgreSQL};Server=IP address;Port=5432;Database=myDataBase;Uid=myUsername;Pwd=myPassword;”1.1、2.0、3.0和3.5中連殲旁爛接OleDb數(shù)據(jù)庫沒有什么區(qū)別。
版主的反應果然如同我的預想,有耐心,我們慢慢來吧!反正我是想學,只要你有耐心解答
琢磨半天,迷糊~~~~~~版主可否把那程序,打包晌沒一下給我,或者直接給我個下載連接,全是E文,看了半天,麻煩版主寫一個例判謹彎子文掘悶件,我自己想琢磨,不用太詳細,簡單的讀取1個表中某字段,拍里出前十,就這個列子,后面我自己一點點嘗試!
c# .NET設(shè)計系統(tǒng),數(shù)據(jù)庫的問題??
在C#中進行數(shù)據(jù)庫連接代碼如下:
string strCon = “Data Source=(local);Initial Catalog=stu;Integrated Security=True;”;
SqlConnection conn = new SqlConnection(strCon);
conn.Open();//打開數(shù)據(jù)庫連接
SqlCommand cmd = new SqlCommand(“select * from students”, conn);//查詢學生信息表
conn.Close();/碼盯/關(guān)閉數(shù)散模腔據(jù)庫連沖衫接
本文將詳細介紹如何使用Connection對象連接數(shù)據(jù)庫。對于不同的.NET數(shù)據(jù)提供者,ADO.NET采用不同的Connection對象連接數(shù)據(jù)庫。這些Connection對象為我們屏蔽了具體的實現(xiàn)細節(jié),并提供了一種統(tǒng)一的實現(xiàn)方法。
Connection類有四種:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。
SqlConnection類的對象連接SQL Server數(shù)據(jù)庫;OracleConnection 類的對象連接Oracle數(shù)據(jù)庫;
OleDbConnection類的對象連接支持OLE DB的數(shù)據(jù)庫,如Access;而OdbcConnection類的對象連接任何支持ODBC的數(shù)據(jù)庫。與數(shù)據(jù)庫的所有通訊最終都是通過Connection對象來完成的。
SqlConnection類
Connection 用于與數(shù)據(jù)庫“對話”,并由特定提供程序的類(如 SqlConnection)表示。盡管SqlConnection類是針對Sql Server的,但是這個類茄或的許多屬性、方法與事件和OleDbConnection及OdbcConnection等類相似。本章將重點講解SqlConnection特定的屬性與方法,其他的Connection類你可以參考相應的幫助文檔。
注意:使用不同的Connection對象需要導入不同的命名空間。OleDbConnection的顫帶伍命名空間為System.Data.OleDb。SqlConnection的命名空間為System.Data.SqlClient。OdbcConnection的命名空間為System.Data.Odbc。OracleConnection的命名空間為System.Data.OracleClinet。
SqlConnection屬性:
屬行埋性 說明
ConnectionString 其返回類型為string,獲取或設(shè)置用于打開 SQL Server 數(shù)據(jù)庫的字符串。
ConnectionTimeOut 其返回類型為int,獲取在嘗試建立連接時終止嘗試并生成錯誤之前所等待的時間。
Database 其返回類型為string,獲取當前數(shù)據(jù)庫或連接打開后要使用的數(shù)據(jù)庫的名稱。
DataSource 其返回類型為string,獲取要連接的 SQL Server 實例的名稱。
State 其返回類型為ConnectionState,取得當前的連接狀態(tài):Broken、Closed、Connecting、Fetching或Open。
ServerVersion 其返回類型為string,獲取包含客戶端連接的 SQL Server 實例的版本的字符串。
PacketSize 獲取用來與 SQL Server 的實例通信的網(wǎng)絡數(shù)據(jù)包的大小(以字節(jié)為單位)。這個屬性只適用于SqlConnection類型
SqlConnection方法:
方法 說明
Close() 其返回類型為void,關(guān)閉與數(shù)據(jù)庫的連接。
CreateCommand() 其返回類型為SqlCommand,創(chuàng)建并返回一個與 SqlConnection 關(guān)聯(lián)的 SqlCommand 對象。
Open() 其返回類型為void,用連接字符串屬性指定的屬性打開數(shù)據(jù)庫連接
SqlConnection事件:
事件 說明
StateChange 當事件狀態(tài)更改時發(fā)生。 (從 DbConnection 繼承。)
InfoMessage 當 SQL Server 返回一個警告或信息性消息時發(fā)生。
提示:可以用事件讓一個對象以某種方式通知另一對象產(chǎn)生某些事情。例如我們在Windows系統(tǒng)中選擇“開始”菜單,一旦單擊鼠標時,就發(fā)生了一個事件,通知操作系統(tǒng)將“開始”菜單顯示出來。
使用SqlConnection對象連接SQL Server數(shù)據(jù)庫
我們可以用SqlConnection()構(gòu)造函數(shù)生成一個新的SqlConnection對象。這個函數(shù)是重載的,即我們可以調(diào)用構(gòu)造函數(shù)的不同版本。SqlConnection()的構(gòu)造函數(shù)如下表所示:
構(gòu)造函數(shù) 說明
SqlConnection () 初始化 SqlConnection 類的新實例。
SqlConnection (String) 如果給定包含連接字符串的字符串,則初始化 SqlConnection 類的新實例。
假設(shè)我們導入了System.Data.SqlClient命名空間,則可以用下列語句生成新的SqlConnection對象:
SqlConnection mySqlConnection = new SqlConnection();
程序代碼說明:在上述語法范例的程序代碼中,我們通過使用“new“關(guān)鍵字生成了一個新的SqlConnection對象,并且將其命名為mySqlConnection。
現(xiàn)在我們就可以使用如下兩種方式連接數(shù)據(jù)庫,即采用集成的Windows驗證和使用Sql Server身份驗證進行數(shù)據(jù)庫的登錄。
集成的Windows身份驗證語法范例
string connectionString=”server=localhost;database=Northwind;
integrated security=SSPI”;
程序代碼說明:在上述語法范例的程序代碼中,我們設(shè)置了一個針對Sql Server數(shù)據(jù)庫的連接字符串。其中server表示運行Sql Server的計算機名,由于在本書中,ASP.NET程序和數(shù)據(jù)庫系統(tǒng)是位于同一臺計算機的,所以我們可以用localhost取代當前的計算機名。database表示所使用的數(shù)據(jù)庫名,這里設(shè)置為Sql Server自帶的一個示例數(shù)據(jù)庫–Northwind。由于我們希望采用集成的Windows驗證方式,所以設(shè)置 integrated security為SSPI即可。
Sql Server 2023中的Windows身份驗證模式如下:
注意:在使用集成的Windows驗證方式時,并不需要我們輸入用戶名和口令,而是把登錄Windows時輸入的用戶名和口令傳遞到Sql Server。然后Sql Server檢查用戶清單,檢查其是否具有訪問數(shù)據(jù)庫的權(quán)限。而且數(shù)據(jù)庫連接字符串是不區(qū)分大小寫的。
采用Sql Server身份驗證的語法范例
string connectionString = “server=localhost;database=Northwind;uid=sa;pwd=sa”;
程序代碼說明:在上述語法范例的程序代碼中,采用了使用已知的用戶名和密碼驗證進行數(shù)據(jù)庫的登錄。uid為指定的數(shù)據(jù)庫用戶名,pwd為指定的用戶口令。為了安全起見,一般不要在代碼中包括用戶名和口令,你可以采用前面的集成的Windows驗證方式或者對Web.Config文件中的連接字符串加密的方式提高程序的安全性。
Sql Server 2023中的Sql Server身份驗證模式如下:
如果你使用其他的數(shù)據(jù)提供者的話,所產(chǎn)生的連接字符串也具有相類似的形式。例如我們希望以O(shè)LE DB的方式連接到一個Oracle數(shù)據(jù)庫,其連接字符串如下:
string connectionString = “data source=localhost;initial catalog=Sales;
use id=sa;password=;provider=MSDAORA”;
程序代碼說明:在上述語法范例的程序代碼中,通過專門針對Oracle數(shù)據(jù)庫的OLE DB提供程序,實現(xiàn)數(shù)據(jù)庫的連接。data source 表示運行Oracle數(shù)據(jù)庫的計算機名,initial catalog表示所使用的數(shù)據(jù)庫名。provider表示使用的OLE DB提供程序為MSDAORA。
Access數(shù)據(jù)庫的連接字符串的形式如下:
string connectionString = “provider=Microsoft.Jet.OLEDB.4.0;
@”data source=c:\DataSource\Northwind.mdb”;
程序代碼說明:在上述語法范例的程序代碼中,通過專門針對Access數(shù)據(jù)庫的OLE DB提供程序,實現(xiàn)數(shù)據(jù)庫的連接。這使用的的OLE DB提供程序為Microsoft.Jet.OLEDB.4.0,并且數(shù)據(jù)庫存放在c:\DataSource目錄下,其數(shù)據(jù)庫文件為Northwind.mdb。
現(xiàn)在我們就可以將數(shù)據(jù)庫連接字符串傳人SqlConnection()構(gòu)造函數(shù),例如:
string connectionString = “server=localhost;database=Northwind;uid=sa;pwd=sa”;
SqlConnection mySqlConnection = new SqlConnection(connectionString);
或者寫成
SqlConnection mySqlConnection =new SqlConnection(
“server=localhost;database=Northwind;uid=sa;pwd=sa”);
在前面的范例中,通過使用“new“關(guān)鍵字生成了一個新的SqlConnection對象。因此我們也可以設(shè)置該對象的ConnectionString屬性,為其指定一個數(shù)據(jù)庫連接字符串。這和將數(shù)據(jù)庫連接字符串傳人SqlConnection()構(gòu)造函數(shù)的功能是一樣的。
SqlConnection mySqlConnection = new SqlConnection();
mySqlConnection.ConnectionString = “server=localhost;database=Northwind;uid=sa;pwd=sa”;
注意:只能在關(guān)閉Connection對象時設(shè)置ConnectionString屬性。
打開和關(guān)閉數(shù)據(jù)庫連接
生成Connection對象并將其設(shè)置ConnectionString屬性設(shè)置為數(shù)據(jù)庫連接的相應細節(jié)之后,就可以打開數(shù)據(jù)庫連接。為此可以調(diào)用Connection對象的Open()方法。其方法如下:
mySqlConnection.Open();
完成數(shù)據(jù)庫的連接之后,我們可以調(diào)用Connection對象的Close()方法關(guān)閉數(shù)據(jù)庫連接。例如:
mySqlConnection.Close();
下面是一個顯示如何用SqlConnection對象連接Sql Server Northwind數(shù)據(jù)庫的實例程序,并且顯示該SqlConnection對象的一些屬性。
范例程序代碼如下:
01 public partial class _Default : System.Web.UI.Page
02 {
03 protected void Page_Load(object sender, EventArgs e)
04 {
05 //建立數(shù)據(jù)庫連接字符串
06 string connectionString = “server=localhost;database=Northwind;
07 integrated security=SSPI”;
08 //將連接字符串傳入SqlConnection對象的構(gòu)造函數(shù)中
09 SqlConnection mySqlConnection = new SqlConnection(connectionString);
10 try
11 {
12 //打開連接
13 mySqlConnection.Open();
14 //利用label控件顯示mySqlConnection對象的ConnectionString屬性
15 lblInfo.Text = “<b>mySqlConnection對象的ConnectionString屬性為:<b>” +
16 mySqlConnection.ConnectionString + “<br>”;
17 lblInfo.Text += “<b>mySqlConnection對象的ConnectionTimeout屬性為<b>” +
18 mySqlConnection.ConnectionTimeout + “<br>”;
19 lblInfo.Text += “<b>mySqlConnection對象的Database屬性為<b>” +
20 mySqlConnection.Database + “<br>”;
21 lblInfo.Text += “<b>mySqlConnection對象的DataSource屬性為<b>” +
22 mySqlConnection.DataSource + “<br>”;
23 lblInfo.Text += “<b>mySqlConnection對象的PacketSize屬性為<b>” +
24 mySqlConnection.PacketSize + “<br>”;
25 lblInfo.Text += “<b>mySqlConnection對象的ServerVersion屬性為<b>” +
26 mySqlConnection.ServerVersion + “<br>”;
27 lblInfo.Text += “<b>mySqlConnection對象的當前狀態(tài)為<b>” +
28 mySqlConnection.State + “<br>”;
29 }
30 catch (Exception err)
31 {
32 lblInfo.Text = “讀取數(shù)據(jù)庫出錯”;
33 lblInfo.Text += err.Message;
34 }
35 finally
36 {
37 //關(guān)閉與數(shù)據(jù)庫的連接
38 mySqlConnection.Close();
39 lblInfo.Text += “<br><b>關(guān)閉連接后的mySqlConnection對象的狀態(tài)為:</b>”;
40 lblInfo.Text += mySqlConnection.State.ToString();
41 }
42 }
43 }
程序代碼說明:在上述范例的程序代碼中,我們利用try catch finally對數(shù)據(jù)庫連接進行異常處理。當無法連接數(shù)據(jù)庫時將拋出異常,并顯示出錯信息,見catch代碼塊所示。在此程序中,無論是否發(fā)生異常,都可以通過finally區(qū)塊關(guān)閉數(shù)據(jù)庫的連接,從而節(jié)省計算機資源,提高了程序的效率和可擴展性。
執(zhí)行結(jié)果:
當然,我們還可以采用一種更加簡便的方法來實現(xiàn)上述程序的功能。這就是將SqlConnection對象包含到using區(qū)塊中,這樣程序會自動調(diào)用Dispose()方法釋放SqlConnection對象所占用的系統(tǒng)資源,無需再使用SqlConnection對象的Close()方法。
范例程序代碼如下:
01 public partial class _Default : System.Web.UI.Page
02 {
03 protected void Page_Load(object sender, EventArgs e)
04 {
05 string connectionString = “server=localhost;database=Northwind;
06 integrated security=SSPI”;
07 SqlConnection mySqlConnection = new SqlConnection(connectionString);
08 using (mySqlConnection)
09 {
10 mySqlConnection.Open();
11 lblInfo.Text = “<b>mySqlConnection對象的ConnectionString屬性為:<b>” +
12 mySqlConnection.ConnectionString + “<br>”;
13 lblInfo.Text += “<b>mySqlConnection對象的ConnectionTimeout屬性為<b>” +
14 mySqlConnection.ConnectionTimeout + “<br>”;
15 lblInfo.Text += “<b>mySqlConnection對象的Database屬性為<b>” +
16 mySqlConnection.Database + “<br>”;
17 lblInfo.Text += “<b>mySqlConnection對象的DataSource屬性為<b>” +
18 mySqlConnection.DataSource + “<br>”;
19 lblInfo.Text += “<b>mySqlConnection對象的PacketSize屬性為<b>” +
20 mySqlConnection.PacketSize + “<br>”;
21 lblInfo.Text += “<b>mySqlConnection對象的ServerVersion屬性為<b>” +
22 mySqlConnection.ServerVersion + “<br>”;
23 lblInfo.Text += “<b>mySqlConnection對象的當前狀態(tài)為<b>”+
24 mySqlConnection.State + “<br>”;
25 }
26 lblInfo.Text += “<br><b>關(guān)閉連接后的mySqlConnection對象的狀態(tài)為:</b>”;
27 lblInfo.Text += mySqlConnection.State.ToString();
28 }
29 }
程序代碼說明:在上述范例的程序代碼中,采用using(mySqlConnection)的形式使得代碼更加簡潔,并且其更大的優(yōu)點就是無需編寫finally區(qū)塊代碼,可以自動關(guān)閉與數(shù)據(jù)庫的連接。
連接池
打開與關(guān)閉數(shù)據(jù)庫都是比較耗時的。為此,ADO.NET自動將數(shù)據(jù)庫連接存放在連接池中。連接池可以大幅度提高程序的性能和效率,因為我們不必等待建立全新的數(shù)據(jù)庫連接過程,而是直接利用現(xiàn)成的數(shù)據(jù)庫連接。注意,利用Close()方法關(guān)閉連接時,并不是實際關(guān)閉連接,而是將連接標為未用,放在連接池中,準備下一次復用。
如果在連接字符串中提供相同的細節(jié),即相同的數(shù)據(jù)庫,用戶名,密碼等等,則可以直接取得并返回池中的連接。然后可以用這個連接訪問數(shù)據(jù)庫。
使用SqlConnection對象時,可以在連接字符串中指定max pool size,表示連接池允許的更大連接數(shù)(默認為100),也可以指定min pool size表示連接池允許的最小連接數(shù)(默認為0)。下面的代碼指定了SqlConnection對象的max pool size為10,min pool size為5。
SqlConnection mySqlConnection = new SqlConnection(“server=localhost;database=Northwind;
integrated security=SSPI;”+”max pool size=10;min pool size=5″);
程序代碼說明:在上述范例的程序代碼中,程序最初在池中生成5個SqlConnection對象。池中可以存儲最多10個SqlConnection對象。如果要打開新的SqlConnection對象時,池中的對象全部都在使用中,則請求要等待一個SqlConnection對象關(guān)閉,然后才可以使用新的SqlConnection對象。如果請求等待時間超過ConnectionTimeout屬性指定的秒數(shù),則會拋出異常。
下面通過一個程序來顯示連接池的性能優(yōu)勢。在應用此程序過程我們要先引用System.Data.SqlClinet和System.Text命名空間。
范例程序代碼如下:
01 public partial class _Default : System.Web.UI.Page
02 {
03 protected void Page_Load(object sender, EventArgs e)
04 {
05 //設(shè)置連接池的更大連接數(shù)為5,最小為1
06 SqlConnection mySqlConnection =new SqlConnection(
07 “server=localhost;database=Northwind;integrated security=SSPI;”+
08 “max pool size=5;min pool size=1”);
09 //新建一個StringBuilder對象
10 StringBuilder htmStr = new StringBuilder(“”);
11 for (int count = 1; count <= 5; count++)
12 {
13 //使用Append()方法追加字符串到StringBuilder對象的結(jié)尾處
14 htmStr.Append(“連接對象 “+count);
15 htmStr.Append(“<br>”);
16 //設(shè)置一個連接的開始時間
17 DateTime start = DateTime.Now;
18 mySqlConnection.Open();
19 //連接所用的時間
20 TimeSpan timeTaken = DateTime.Now – start;
21 htmStr.Append(“連接時間為 “+timeTaken.Milliseconds+”毫秒”);
22 htmStr.Append(“<br>”);
23 htmStr.Append(“mySqlConnection對象的狀態(tài)為” + mySqlConnection.State);
24 htmStr.Append(“<br>”);
25 mySqlConnection.Close();
26 }
27 //將StringBuilder對象的包含的字符串在label控件中顯示出來
28 lblInfo.Text = htmStr.ToString();
29 }
30 }
程序代碼說明:在上述范例的程序代碼中,我們將在連接池中重復5次打開一個SqlConnection對象,DateTime.Now表示當前的時間。timeTaken表示從連接開始到打開連接所用的時間間隔??梢钥闯?,打開之一個連接的時間比打開后續(xù)連接的時間要長,因為之一個連接要實際連接數(shù)據(jù)庫。被關(guān)閉之后,這個連接存放在連接池中。再次打開連接時,只要從池中直接讀取即可,速度非常快。
提示:String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內(nèi)存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分配新的空間。在需要對字符串執(zhí)行重復修改的情況下,與創(chuàng)建新的 String 對象相關(guān)的系統(tǒng)開銷可能會非常昂貴。如果要修改字符串而不創(chuàng)建新的對象,則可以使用 System.Text.StringBuilder 類。例如,當在一個循環(huán)中將許多字符串連接在一起時,使用 StringBuilder 類可以提升性能。Append 方法可用來將文本或?qū)ο蟮淖址硎拘问教砑拥接僧斍?StringBuilder 對象表示的字符串的結(jié)尾處。
在ASP.NET 2.0中,使用了一種在運行時解析為連接字符串值的新的聲明性表達式語法,按名稱引用數(shù)據(jù)庫連接字符串。連接字符串本身存儲在 Web.config 文件中的 <connectionStrings> 配置節(jié)下面,以便易于在單個位置為應用程序中的所有頁進行維護。
范例程序代碼如下:
<?xml version=”1.0″?>
<configuration>
<connectionStrings>
<add name=”Pubs” connectionString=”Server=localhost;
Integrated Security=True;Database=pubs;Persist Security Info=True”
providerName=”System.Data.SqlClient” />
<add name=”Northwind” connectionString=”Server=localhost;
Integrated Security=True;Database=Northwind;Persist Security Info=True”
providerName=”System.Data.SqlClient” />
</connectionStrings>
<system.web>
<pages styleSheetTheme=”Default”/>
</system.web>
</configuration>
程序代碼說明:在上述范例的程序代碼中,我們在Web.Config文件中的<connectionStrings> 配置節(jié)點下面設(shè)置了兩個數(shù)據(jù)庫連接字符串,分別指向pubs和Northwind兩個示例數(shù)據(jù)庫。注意,在2.0中引進了數(shù)據(jù)源控件,例如SqlDataSource 控件,我們可以將SqlDataSource 控件的 ConnectionString 屬性被設(shè)置為表達式 <%$ ConnectionStrings:Pubs %>,該表達式在運行時由 ASP.NET 分析器解析為連接字符串。還可以為SqlDataSource 的 ProviderName 屬性指定一個表達式,例如 <%$ ConnectionStrings:Pubs.ProviderName %>。其具體的用法和新特征將在以后的章節(jié)進行詳細的介紹?,F(xiàn)在有個基礎(chǔ)的了解即可。
當然,我們也可以用下面的方式從配置文件直接讀取數(shù)據(jù)庫連接字符串。首先我們需要引用using System.Web.Configuration命名空間,該命名空間包含用于設(shè)置 ASP.NET 配置的類。
string connectionString =ConfigurationManager.ConnectionStrings.ConnectionString;
程序代碼說明:在上述范例的程序代碼中,我們可以利用ConnectionStrings讀取相應的Northwind字符串。同理以可以利用ConnectionStrings讀取相應的Pubs字符串。
關(guān)于.net加載大數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
文章名稱:高效運行的秘訣:如何讓.NET加載大數(shù)據(jù)庫?(.net加載大數(shù)據(jù)庫)
本文鏈接:http://fisionsoft.com.cn/article/cdhdegg.html


咨詢
建站咨詢
