我需要在网页上的SQL Server数据库中的表中显示数据。我的Web.config文件中有一个连接字符串,如下所示:
<connectionStrings>
<add name="Products.ConnectionString"
connectionString="Data Source=...."
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
在我的aspx中,我有一个带有ObjectDataSource的GridView来显示数据。 在后面的代码中,我根据List创建了一个方法,以从我的数据库表中返回值。但是,现在我被告知用户需要能够过滤数据,所以我创建了一个文本框和一个按钮来启用它,但后来意识到在这种情况下,拥有一个DataTable比一个List更好。我总是使用Lists来处理这类项目,所以我不确定如何在DataTable中实现相同的目标。 以下是我的List的代码:
public class Products
{
public string Name { get; set;}
public int Price { get; set; }
public List<Products> DataTable()
{
List<Products> myList = new List<Products>();
string sqlQuery = "SELECT * FROM [Products_Table] ";
string connectionString = ConfigurationManager.ConnectionStrings["Products_ConnectionString"].ConnectionString; //Read connection string from config file
using (var con = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand(sqlQuery, con))
{
con.Open(); //Open connection
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Products t = new Products();
t.Name = reader["Name"].ToString();
t.Price = Convert.ToInt32(reader["Price"]);
myList.Add(t);
}
}
}
}
return myList;
}
}
如果有人能让我在第一时间用DataTable替换列表,那就太棒了。
答案 0 :(得分:0)
像 -
GridView1.DataSource = DataTable();
答案 1 :(得分:0)
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString);
string SQL = "SELECT * FROM [Table];";
SqlDataAdapter adapter = new SqlDataAdapter(SQL, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
我不知道你在寻找什么,但这就是你如何将GridView与DataTable绑定。
答案 2 :(得分:0)
在您的代码中,您需要执行以下操作:
public static class ProductsDataSource
{
public static DataTable LoadProducts()
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Products_ConnectionString"].ConnectionString))
using (SqlCommand command = new SqlCommand("SELECT * FROM Products_Table", conn))
{
DataTable data = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(data);
return data;
}
}
}
由于您正在使用ObjectData Source,因此请确保正确定义SelectMethod和Typename以便返回数据。像这样:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
TypeName="ProductsDataSource"
SelectMethod="LoadProducts"
/>