日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七

系統(tǒng) 2800 0
前言:
這是Scott Mitchell 的ASP.NET 2.0 數(shù)據(jù)教程系列的第四十七篇,前四十六篇已經(jīng)由論壇上的各位達(dá)人翻譯出來了,不過第四十七到五十三篇我找了一下好象沒有人翻譯。小弟也是新手,找不到中文譯文,只有自己硬者頭皮上,加上英語水平有限,理解有誤的地方請(qǐng)嘴下留情!另外如果哪位高人知道第四十七到五十三篇的中文翻譯地址,麻煩回復(fù)一下,自己翻譯起來實(shí)在是太慢了。再次謝過了!
本文英文原版以及代碼下載:

Scott Mitchell ASP.NET 2.0 數(shù)據(jù)教程之四十七 使用 SqlDataSource 控件檢索數(shù)據(jù)

使用 SqlDataSource 控件檢索數(shù)據(jù)

在前面的教程里,我們用 ObjectDataSource 控件充分的將表現(xiàn)層和數(shù)據(jù)訪問層( DAL )分開來。在這篇教程里我們看看怎樣在一個(gè)表現(xiàn)層和數(shù)據(jù)訪問層區(qū)分的不是很嚴(yán)格的簡單程序中使用 SqlDataSource 控件。

導(dǎo)言:

到目前為止,我們探討的教程是由表現(xiàn)層,業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層構(gòu)成的層次體系結(jié)構(gòu)。數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層分別在教程第一和第二章提到。在 Displaying Data With the ObjectDataSource 這篇教程里,我們探討了怎樣用 ASP.NET 2.0 的新控件 --ObjectDataSource 控件在表現(xiàn)層展示數(shù)據(jù)

本教程到目前為止用這種層次結(jié)構(gòu)來處理數(shù)據(jù)。然而繞過這種體系結(jié)構(gòu),通過直接把數(shù)據(jù)查詢和業(yè)務(wù)邏輯放在 Web 頁面上,也可以達(dá)到直接在 ASP.NET 頁面上訪問,插入,更新,刪除數(shù)據(jù)庫數(shù)據(jù)的目的。對(duì)十分龐大或者復(fù)雜的應(yīng)用程序而言,使用層次結(jié)構(gòu)對(duì)程序的成功和可維護(hù)性是很重要的。然而對(duì)很簡單的程序來說,沒有必要使用層次體系結(jié)構(gòu)。

ASP.NET 2.0 提供了 5 個(gè)內(nèi)建的數(shù)據(jù)源控件, SqlDataSource 控件 , AccessDataSource 控件 , ObjectDataSource 控件 , XmlDataSource 控件 , SiteMapDataSource 控件。 SqlDataSource 控件能直接從關(guān)系型數(shù)據(jù)庫中訪問和更新數(shù)據(jù),包括 Microsoft SQL Server Microsoft Access, Oracle, MySQL 等數(shù)據(jù)庫。在本章以及接下來的 3 章教程里面,我們將探討如何用 SqlDataSource 控件來查詢和篩選數(shù)據(jù)庫數(shù)據(jù),包括插入,更新和刪除。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

圖1:ASP.NET 2.0 的5個(gè)內(nèi)建的數(shù)據(jù)源控件

比較ObjectDataSource控件和 SqlDataSource控件

從理論上說, ObjectDataSource 控件和 SqlDataSource 控件都是作為訪問數(shù)據(jù)的一種代理。就象在教程 Displaying Data With the ObjectDataSource 中討論的那樣,可以在 ObjectDataSource 控件中設(shè)置展示數(shù)據(jù)的數(shù)據(jù)類型,以及用來選擇,插入,更新和刪除數(shù)據(jù)所調(diào)用的方法。一旦完成了 ObjectDataSource 控件的設(shè)置, GridView, DetailsView, DataList 等數(shù)據(jù) Web 控件便可以通過綁定 ObjectDataSource 控件調(diào)用其 Select(), Insert(), Delete(), Update() methods 方法。

雖然 SqlDataSource 控件具有和 SqlDataSource 控件同樣的功能,但使用 SqlDataSource 控件時(shí),我們必須提供詳細(xì)的數(shù)據(jù)庫連接字符串,以及用來執(zhí)行選擇,更新,插入,刪除數(shù)據(jù)的 ad-hoc SQL 查詢

或存儲(chǔ)過程。當(dāng)調(diào)用 SqlDataSource 控件的 Select(), Insert(), Update(), and Delete() 方法時(shí), SqlDataSource 控件連接到數(shù)據(jù)庫,并傳遞適當(dāng)?shù)? SQL 查詢。下圖展示了這些方法如何連接數(shù)據(jù)庫,傳遞查詢和返回結(jié)果。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

2 SqlDataSource 控件充當(dāng)訪問數(shù)據(jù)庫的代理

注意:在本章教程中我們主要關(guān)注如何從數(shù)據(jù)庫獲得數(shù)據(jù),在后面的

Inserting, Updating, and Deleteing Data with the SqlDataSource

Control 教程中 , 我們將討論如何通過設(shè)置 SqlDataSource 控件以支持插入,更新和刪除數(shù)據(jù)。

SqlDataSource 控件和 AccessDataSource 控件

除了 SqlDataSource 控件外, ASP.NET 2.0 還包 AccessDataSource 控件。這兩種不同的控件使很多開發(fā)者誤以為 AccessDataSource 控件主要是被設(shè)計(jì)來與 Microsoft Access 數(shù)據(jù)庫打交道, SqlDataSource 控件主要是被設(shè)計(jì)來來與 Microsoft SQL Server 打交道。實(shí)際情況是, SqlDataSource 控件可以與幾乎所有 .NET 能訪問的關(guān)系型數(shù)據(jù)庫打交道。包括任何 OleDb ODBC compliant data stores, 比如: Microsoft SQL Server, Microsoft Access, Oracle, Informix, MySQL, and PostgreSQL 等。

SqlDataSource 控件和 AccessDataSource 控件的唯一區(qū)別在于 AccessDataSource 控件的數(shù)據(jù)庫連接信息只需要提供 Access 數(shù)據(jù)庫文件的訪問路徑。而 SqlDataSource 控件則需要提供完整的連接字符串。

第一步:創(chuàng)建 SqlDataSource 頁面

在我們探討用 SqlDataSource 控件直接操作數(shù)據(jù)庫數(shù)據(jù)之前,讓我們先花些時(shí) 間在我們的站點(diǎn)項(xiàng)目里添加這些本節(jié)里和下三節(jié)里需要的 ASP.NET 頁面。首先添加一個(gè)名為 SqlDataSource 的文件夾,在里面添加下列頁面,并配置為使用 Site.master 母板頁。

Default.aspx

Querying.aspx

ParameterizedQueries.aspx

InsertUpdateDelete.aspx

OptimisticConcurrency.aspx

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

3 :為 SqlDataSource 相關(guān)教程添加頁面

類似在其它文件夾里, EditInsertDelete文件夾里的Default.aspx將列出這些教程章節(jié)。記得用戶控件提供這個(gè)功能。因此,從解決方案資源管理器中拖拽一個(gè)這個(gè)用戶控件到頁面的設(shè)計(jì)視圖,從而添加它到Default.aspx頁面

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

4:將用戶控件添加到Default.aspx頁面

最后把這 4個(gè)頁面加入站點(diǎn)地圖中。打開Web.sitemap文件并且把下列代碼加在“Adding Custom Buttons to the DataList and Repeater”siteMapNode標(biāo)記之后:

<siteMapNode url="~/SqlDataSource/Default.aspx"

title="Using the SqlDataSource Control"

description="Work directly with database data using the

SqlDataSource control.">

<siteMapNode url="~/SqlDataSource/Querying.aspx"

title="Retrieving Database Data"

description="Examines how to query data from a database that

can then be displayed through a data Web control."/>

<siteMapNodeurl="~/SqlDataSource/ParameterizedQueries.aspx"

title="Parameterized Queries"

description="Learn how to specify parameterized WHERE

clauses in the SqlDataSource's SELECT statement." />

<siteMapNode url="~/SqlDataSource/InsertUpdateDelete.aspx"

title="Inserting, Updating, and Deleting Database Data"

description="See how to configure the SqlDataSource to include INSERT, UPDATE, and DELETE statements." />

<siteMapNode url="~/SqlDataSource/OptimisticConcurrency.aspx"

title="Using Optimistic Concurrency"

description="Explore how to augment the SqlDataSource to

include support for optimistic concurrency." />

</siteMapNode>

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

5:更新站點(diǎn)地圖使之包含新的頁面

第二步:添加并設(shè)置 SqlDataSource控件

SqlDataSource文件夾中打開Querying.aspx頁面,切換到設(shè)計(jì)試圖。從工具箱中拖一個(gè)SqlDataSource控件到 設(shè)計(jì)器中,設(shè)置其 ID 為 ProductsDataSource。和ObjectDataSource一樣,SqlDataSource不產(chǎn)生任何的聲明標(biāo)記,所以現(xiàn)在在頁面上看起來就象一個(gè)灰色的方塊。點(diǎn)擊SqlDataSource控件的智能標(biāo)簽,點(diǎn)“Configure Data Source”鏈接,進(jìn)入數(shù)據(jù)源配置向?qū)А?

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

6:在智能標(biāo)簽里點(diǎn)擊“設(shè)置數(shù)據(jù)源”鏈接。

ObjectDataSource控件和 SqlDataSource控件的配置向?qū)в行┰S不同,但最終目的都是相同的:詳細(xì)的說明了如何從數(shù)據(jù)庫獲取,插入,更新和刪除數(shù)據(jù)。ObjectDataSource控件明確指定了要訪問的數(shù)據(jù)庫,并提供了要使用的SQL查詢聲明或存儲(chǔ)過程的詳細(xì)情況

向?qū)У牡谝徊绞沁x擇要訪問的數(shù)據(jù)庫,在下拉列表中包含了放在 App_Data 文件夾中的數(shù)據(jù)庫,以及添加到服務(wù)器資源管理器的數(shù)據(jù)連接節(jié)點(diǎn)中的數(shù)據(jù)庫。一旦我們將一個(gè)連接到App_Data文件夾中的NORTHWIND.MDF數(shù)據(jù)庫的連接字符串添加到項(xiàng)目的Web.config 文件中,這個(gè)連接字符串就會(huì)出現(xiàn)在下拉列表的選項(xiàng)。如下圖,選 中它,點(diǎn)“下一步”。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

7:從下拉列表里選擇NORTHWINDConnectionString

選擇數(shù)據(jù)庫后,向?qū)мD(zhuǎn)入“如何從數(shù)據(jù)庫檢索數(shù)據(jù)”界面。有 2種方式:第一種指定自定義SQL語句或存儲(chǔ)過程,第二種是指定來自表或視圖的列。

注意:我們先探討使用“指定來自表或視圖的列”選項(xiàng)的實(shí)例,稍后再探討用“自定義 SQL語句或存儲(chǔ)過程”選項(xiàng)的實(shí)例。

8是我們點(diǎn)擊“指定來自表或視圖的列”單選按鈕時(shí)的畫面,這里我們選擇Products表,返回ProductID, ProductName和UnitPrice 列。完成選擇后,在底部的方框內(nèi)將顯示SQL語句: SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

8:從表Products返回?cái)?shù)據(jù)。

完成上述設(shè)置后,點(diǎn)“下一步”按鈕,進(jìn)入測試查詢界面,在這里可以測試上一步所設(shè)置的查詢的結(jié)果。點(diǎn)擊“測試查詢”按鈕,執(zhí)行查詢。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

9:點(diǎn)擊“測試”,從SELECT 查詢檢索數(shù)據(jù)。

最后,點(diǎn)“完成”按鈕完成向?qū)А?

ObjectDataSource一樣,SqlDataSource的向?qū)гO(shè)置只是完成了對(duì)SqlDataSource控件屬性的賦值而已,即ConnectionString 屬性和SelectCommand 屬性。完成設(shè)置之后,我們的SqlDataSource控件代碼應(yīng)該和下面的差不多:

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

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

SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]">

</asp:SqlDataSource>

其中 ConnectionString屬性提供了怎樣連接數(shù)據(jù)庫的詳細(xì)信息,可以用完整的,硬編碼的連接字符串對(duì)其賦值,也可以用Web.config文件中的連接字符串來賦值。當(dāng)用Web.config文件中的字符串時(shí),語法為:<%$ expressionPrefix:expressionValue %>,特別地expressionPrefix就是“ConnectionStrings”,而expressionValue 則是Web.config文件<connectionStrings>部分中,連接字符串的名字。關(guān)于此語法的更多信息請(qǐng)參考: ASP.NET Expressions Overview

SelectCommand屬性是SQL查詢語句或存儲(chǔ)過程的詳細(xì)陳述。

第三步:添加數(shù)據(jù) Web控件并綁定到SqlDataSource

一旦設(shè)置好 SqlDataSource后,就可以用GridView 或DetailsView等數(shù)據(jù)Web控件綁定它。在本篇教程中我們使用GridView,從工具箱拖一個(gè)GridView控件到頁面上,在智能標(biāo)簽中的“選擇數(shù)據(jù)源”里選ProductsDataSource ,這樣就將GridView控件綁定到我們前面設(shè)置的SqlDataSource控件了。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

10:添加GridView控件并綁定到SqlDataSource

完成綁定后, Visual Studio 會(huì)自動(dòng)為GridView從數(shù)據(jù)源控件返回的每一列添加一個(gè)BoundField 或CheckBoxField 。就本文來說既然SqlDataSource從數(shù)據(jù)庫返回三列:ProductID, ProductName, 和 UnitPrice ,那么Visual Studio就在自動(dòng)在GridView中生成三列(three fields )。

花幾分鐘來設(shè)置 GridView的三個(gè)BoundFields:把ProductName field的HeaderText 屬性設(shè)置為“Product Name”,UnitPrice field設(shè)置為“Price”,同時(shí)格式化為貨幣形式。修改后,你的GridView代碼看起來應(yīng)該象下面這樣:

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

DataKeyNames="ProductID" DataSourceID="ProductsDataSource"

EnableViewState="False">

<Columns>

<asp:BoundField DataField="ProductID" HeaderText="ProductID"

InsertVisible="False" ReadOnly="True"

SortExpression="ProductID" />

<asp:BoundField DataField="ProductName" HeaderText="Product Name"

SortExpression="ProductName" />

<asp:BoundField DataField="UnitPrice" HeaderText="Price"

SortExpression="UnitPrice" DataFormatString="{0:c}"

HtmlEncode="False" />

</Columns>

</asp:GridView>

在瀏覽器中瀏覽本頁,如圖 11所示,GridView列出了每個(gè)產(chǎn)品的ProductID, ProductName, 和UnitPrice。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

11:GridView里列出了每個(gè)產(chǎn)品的ProductID, ProductName, 和UnitPrice。

測試該頁面時(shí), GridView調(diào)用其數(shù)據(jù)源控件的Select()方法。如果我們使用ObjectDataSource控件來測試該頁面的話,它將會(huì)調(diào)用邏輯層ProductsBLL class的GetProducts() 方法。而用SqlDataSource控件的話,其Select()方法將直接鏈接到要訪問的數(shù)據(jù)庫,并傳遞SelectCommand(具體就本例而言,傳遞的是SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products])。SqlDataSource將返回的結(jié)果傳遞給GridView,后者根據(jù)從數(shù)據(jù)庫返回的每一條記錄生產(chǎn)一行(a row)

SqlDataSource控件及數(shù)據(jù)Web控件的內(nèi)置屬性

一般來說,數(shù)據(jù) Web控件的分頁,排序,編輯,插入,刪除等屬性是由數(shù)據(jù)Web控件自身指定的,跟它所使用的數(shù)據(jù)源控件沒有太大關(guān)系。也就是說, GridView可以自由的啟用它內(nèi)建的分頁,排序,編輯和刪除功能,而不管它到底是綁定到SqlDataSource控件還是ObjectDataSource控件。然而,數(shù)據(jù)Web控件的某些屬性卻要受其綁定的數(shù)據(jù)源控件及其設(shè)置的影響。

比如, 就像我們?cè)? Efficiently Paging Through Large Amounts of Data 這章教程中探討的那樣,在啟用分頁功能后,在默認(rèn)情況下,每次跳轉(zhuǎn)頁面時(shí),數(shù)據(jù)Web控件都會(huì)對(duì)所有的記錄重新檢索,盡管我們只需要顯示特定的那幾條記錄。這種模式在要檢索的數(shù)據(jù)量很大的情況下,效率會(huì)很低。不過ObjectDataSource控件可以通過自定義分頁的方法僅僅返回那些需要在當(dāng)前頁面上顯示的記錄,很遺憾的是SqlDataSource控件不支持自定義分頁功能。

在默認(rèn)情況下, SqlDataSource控件返回的數(shù)據(jù)可以通過GridView控件來進(jìn)行分頁和排序。來做個(gè)示范,在Querying.aspx 頁面中,在GridView控件的智能標(biāo)簽里啟用分頁和排序功能,看它是否象我們期望的那樣工作。

分頁和排序的原理在于SqlDataSource控件將檢索的數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換成“泛型數(shù)據(jù)集”(loosely-typed DataSet)。那些被用來分頁的每條記錄就蘊(yùn)含

在數(shù)據(jù)集里面,此外,數(shù)據(jù)集支持對(duì)返回的結(jié)果進(jìn)行排序。當(dāng) GridView請(qǐng)求對(duì)數(shù)據(jù)分頁或排序時(shí),SqlDataSource控件自動(dòng)完成上述工作。

在默認(rèn)情況下, SqlDataSource返回的是數(shù)據(jù)集(DataSet),你也可以使它返回一個(gè)DataReader ,方法是把它的DataSourceMode屬性設(shè)置為 DataReader”。當(dāng)希望把DataReader的檢索結(jié)果轉(zhuǎn)換為現(xiàn)成的代碼 existing code )時(shí),設(shè)置為DataReader往往是首選。另外DataReader比起 DataSet來簡單的多,功能更強(qiáng)大。不過將DataSourceMode屬性設(shè)置為 DataReader”后,數(shù)據(jù)Web控件便不能啟用分頁或排序功能,因?yàn)? SqlDataSource無法得知總共返回了多少條記錄,并且DataReader也不支持對(duì)返回的數(shù)據(jù)排序。

第四步:使用自定義的 SQL查詢或存儲(chǔ)過程

前面講到, SqlDataSource控件從數(shù)據(jù)庫檢索數(shù)據(jù)的方法有2種。在第二步我們探討了從表Products返回?cái)?shù)據(jù)的方法,現(xiàn)在我們探討用自定義SQL查詢的情況。

Querying.aspx添加一個(gè)新的GridView控件,在其智能標(biāo)簽的下拉列表中

選擇“新建數(shù)據(jù)源”,在“選擇數(shù)據(jù)源類型”界面中選“ database”,將數(shù)據(jù)

ID設(shè)置為“ProductsWithCategoryInfoDataSource”。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

12:創(chuàng)建一個(gè)新的SqlDataSource控件,并命名為ProductsWithCategoryInfoDataSource

下一步,接著會(huì)詢問使用哪個(gè)數(shù)據(jù)連接,就想我們?cè)趫D 7做的那樣,在下拉列表中選擇NORTHWINDConnectionString,點(diǎn)下一步,在配置SQL語句界面中,選擇“指定自定義SQL語句或存儲(chǔ)過程”,點(diǎn)下一步,進(jìn)入“定義自定義語句或存儲(chǔ)過程”界面,包含“選擇”,“更新”,“刪除”,“插入”四個(gè)選項(xiàng)卡,在每個(gè)選項(xiàng)卡中,你可以在文本框中輸入自定義SQL語句,或者在下拉列表中選擇存儲(chǔ)過程。本章我們討論輸入自定義SQL語句,在下面的教程中再探討使用存儲(chǔ)過程的情況。

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

13:輸入自定義SQL語句或選擇某個(gè)存儲(chǔ)過程

可以手工輸入自定義 SQL 語句,也可以借助于查詢生成器來輔助生成。不管

用哪種,都應(yīng)使用如下查詢:

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName

FROM Categories

INNER JOIN Products ON

Categories.CategoryID = Products.CategoryID

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)

14:使用查詢生成器圖像化的構(gòu)造查詢

點(diǎn)下一步進(jìn)入“測試查詢”界面,點(diǎn)“完成”結(jié)束設(shè)置。

完成設(shè)置后, GridView的代碼應(yīng)該看起來象下面這樣:

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

DataKeyNames="ProductID"

DataSourceID="ProductsWithCategoryInfoDataSource"

EnableViewState="False">

<Columns>

<asp:BoundField DataField="ProductID" HeaderText="ProductID"

InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />

<asp:BoundField DataField="ProductName" HeaderText="ProductName"

SortExpression="ProductName" />

<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"

SortExpression="CategoryName" />

</Columns>

</asp:GridView>

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

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

SelectCommand="

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName

FROM Categories

INNER JOIN Products ON Categories.CategoryID = Products.CategoryID">

</asp:SqlDataSource>

http:

分享到:
評(píng)論

Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程之四十七使用SqlDataSource控件檢索數(shù)據(jù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 揭阳市| 奎屯市| 台东县| 唐山市| 多伦县| 桃源县| 武鸣县| 探索| 皮山县| 抚州市| 佛山市| 城市| 新田县| 博白县| 从江县| 孟津县| 敖汉旗| 汪清县| 吕梁市| 泰州市| 扎赉特旗| 龙岩市| 嘉善县| 南召县| 留坝县| 洛南县| 铜鼓县| 花莲县| 阿克陶县| 沐川县| 雅安市| 吉隆县| 陕西省| 沙雅县| 桂林市| 黄平县| 咸丰县| 盐城市| 屏边| 宝清县| 台山市|