簡體   English   中英

使用ASP.NET C#從背后的代碼訪問數據庫數據

[英]Access database data from the code behind using ASP.NET C#

我正在使用C#使用ASP.NET開發Web模板。 我的連接字符串是:

<connectionStrings>
<add name="NorthwindConnectionString" 
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True" 
providerName="System.Data.SqlClient"/>
</connectionStrings>

連接字符串的訪問如下:

string connStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;

我的SqlDataSource如下:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
 ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
 SelectCommand="SELECT [ProductID], [ProductName], [Discontinued] FROM [Alphabetical list of products]"
 InsertCommand = "INSERT INTO [Alphabetical list of products] (ProductID, ProductName, Discontinued)VALUES(@ProductID,@ProductName,@Discontinued)">
<InsertParameters>
<asp:Parameter Name="ProductID" Type="String" />
<asp:Parameter Name="ProductName" Type="String" />
<asp:Parameter Name="Discontinued" Type="String" />
</InsertParameters> 
</asp:SqlDataSource>

我在頁面上放置了一個ListView來顯示數據。 現在如何訪問數據庫中的數據,如何使用后面的代碼檢索數據並將其顯示在頁面中?

如您所知,通過在頁面內使用<%# Eval("ProductName") %> ,可以訪問所有數據。 例如,我有一列ProductName ,我想獲取此列中的數據,進行一些重新格式化,然后將其傳遞給后面的頁面表單代碼,並在后面的代碼處編寫SqlDataSource

我敢打賭,比這更多的選擇,但這就是我要做的。 在頁面中切出SqlDataSource並從代碼中獲取並綁定數據:

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString)
{
  var selectCommand = new SqlCommand("SELECT ...");
selectCommand.CommandType = CommandType.Text; selectCommand.Connection = connection;

  var dataAdapter = new SqlDataAdapter()
  dataAdapter.SelectCommand = selectCommand

  var dataSet = new DataSet();

  connection.Open()
  dataAdapter.Fill(dataSet, "myDataSet");
  connection.Close()

  // now, the dataSet.Tables[0] is a DataTable with your data in it. You can add, edit or remove data in this table before binding it to the ListView

  myListView.DataSource = dataSet;
  myListView.DataBind(); }
在此示例中,您將必須編寫單獨的代碼以插入數據。 如果使用ASP.NET,我會故意這樣編寫代碼,因為ASP.NET應用程序是無狀態的,因此不記得任何狀態或數據(除了Session或ViewState中存儲的狀態或數據)

作為替代方案,您可以掛鈎到ListView的ItemDataBound事件。 請參閱MSDN庫中的示例代碼: http : //msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.listview.itemdatabound.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM