我正在使用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
。
答案 0 :(得分:0)
我敢打赌,除此之外还有更多选择,但这就是我要做到的。剪切页面中的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中的内容)
答案 1 :(得分:0)
作为替代方法,您可以挂钩ListView的ItemDataBound事件。请参阅MSDN Library中的示例代码:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound.aspx