Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在asp.net中关闭executereader?_Asp.net_Visual Studio - Fatal编程技术网

如何在asp.net中关闭executereader?

如何在asp.net中关闭executereader?,asp.net,visual-studio,Asp.net,Visual Studio,我在同一页上使用多个转发器。但当我为第二中继器使用Execute reader时,它给出了一个异常,即已经有Execute reader在运行。。关上它。我把ExecuteReader(CommandBehavior.CloseConnection)放进去,但它给出了命令行为不存在的错误。。。对此问题有何想法?您需要显式关闭数据读取器如果指定命令行为,它将不会为您执行此操作 我个人会将UI控件绑定到强类型对象。例如,我将定义一个产品模型: public class Product { p

我在同一页上使用多个转发器。但当我为第二中继器使用Execute reader时,它给出了一个异常,即已经有Execute reader在运行。。关上它。我把ExecuteReader(CommandBehavior.CloseConnection)放进去,但它给出了命令行为不存在的错误。。。对此问题有何想法?

您需要显式关闭
数据读取器
如果指定
命令行为
,它将不会为您执行此操作


我个人会将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;
    ...
}