如何在asp.net中关闭executereader?
我在同一页上使用多个转发器。但当我为第二中继器使用Execute reader时,它给出了一个异常,即已经有Execute reader在运行。。关上它。我把ExecuteReader(CommandBehavior.CloseConnection)放进去,但它给出了命令行为不存在的错误。。。对此问题有何想法?您需要显式关闭如何在asp.net中关闭executereader?,asp.net,visual-studio,Asp.net,Visual Studio,我在同一页上使用多个转发器。但当我为第二中继器使用Execute reader时,它给出了一个异常,即已经有Execute reader在运行。。关上它。我把ExecuteReader(CommandBehavior.CloseConnection)放进去,但它给出了命令行为不存在的错误。。。对此问题有何想法?您需要显式关闭数据读取器如果指定命令行为,它将不会为您执行此操作 我个人会将UI控件绑定到强类型对象。例如,我将定义一个产品模型: public class Product { p
数据读取器
如果指定命令行为
,它将不会为您执行此操作
我个人会将UI控件绑定到强类型对象。例如,我将定义一个产品模型:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
然后是从数据库中读取产品的方法:
public static IEnumerable<Product> GetProducts()
{
using (var conn = new SqlConnection("Some connection string"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT prod_id, prod_name FROM products";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
yield return new Product
{
Id = reader.GetInt32(reader.GetOrdinal("prod_id")),
Name = reader.GetString(reader.GetOrdinal("prod_name")),
};
}
}
}
}
当你对编写SQL查询感到厌烦时,你可以看看ORM,例如,
你能分享你用来绑定中继器的代码吗?在选择ORM,特别是EF之前,考虑评估所有的利弊。检查protected void Page_Load(object sender, EventArgs e)
{
var products = Db.GetProducts().ToArray();
repeater1.DataSource = products;
repeater2.DataSource = products;
gridView.DataSource = products;
...
}