![](/img/trans.png)
[英]add, update and delete database data from code behind using 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.