从代码后面使用ASP访问数据库数据.净c#

本文关键字:数据库 访问 数据 ASP 代码 | 更新日期: 2023-09-27 18:13:41

我正在开发一个web模板与ASP。. NET使用c#。我的连接字符串是:

<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

从代码后面使用ASP访问数据库数据.净c#

我敢打赌有比这个更多的选择,但这是我怎么做的。删除页面中的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/en-us/library/system.web.ui.webcontrols.listview.itemdatabound.aspx