C# 使用ASP.NET C从代码隐藏中访问数据库数据#

C# 使用ASP.NET C从代码隐藏中访问数据库数据#,c#,asp.net,asp.net-ajax,sqldatasource,C#,Asp.net,Asp.net Ajax,Sqldatasource,我正在使用C#开发一个ASP.NET web模板。我的连接字符串是: <connectionStrings> <add name="NorthwindConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True" pro

我正在使用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>
我的
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>

我在页面上放置了一个
列表视图
,以显示数据。现在,我如何访问数据库中的数据,如何检索数据并使用代码隐藏在页面中显示数据

如您所知,通过在页面内使用
,可以访问所有数据。
例如,我有一个列
ProductName
,我想获取此列中的数据,进行一些重新格式化并将其传递给页面表单代码隐藏,还想在代码隐藏处编写
SqlDataSource

我打赌有比此更多的选项,但我会这样做。剪切页面中的SqlDataSource并从代码中获取和绑定数据:
使用(var connection=new SqlConnection(ConfigurationManager.ConnectionString[“NorthwindConnectionString”].ConnectionString)
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(); }
{ var selectCommand=new SqlCommand(“选择…”);
选择Command.CommandType=CommandType.Text; selectCommand.Connection=Connection;

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



Connection.Open()

dataAdapter.Fill(dataSet,“myDataSet”);
Connection.Close()

现在,数据集.Tables[0]是一个数据表,其中包含您的数据。您可以在将此表中的数据绑定到ListView之前添加、编辑或删除此表中的数据

myListView.DataSource=dataSet;
myListView.DataBind();
}
在本例中,您必须为插入数据编写单独的代码。如果处理ASP.NET,我会故意这样编写代码,因为ASP.NET应用程序是无状态的,因此不记得任何状态或数据(除了存储在会话或视图状态中的内容)

作为替代方案,您可以连接到ListView的ItemDataBound事件。请参阅MSDN库中的示例代码:

亲爱的KBoek,感谢您的回答,它确实很有帮助。但是,您能否为我提供一个添加、更新和删除的代码。因为我在这个领域是新手。非常感谢
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(); }