【问题标题】:Trying to filter dataGridView with combobox, error : "There is already an open DataReader"尝试使用组合框过滤 dataGridView,错误:“已经有一个打开的 DataReader”
【发布时间】:2015-06-06 22:33:47
【问题描述】:

我有 2 张桌子。一个是:

A表(

身份证

名字)

FK 号码(

表 B

idB

城市名称)

我正在尝试使用组合框中的 CityName 过滤表 A 的 dataGridView。

在我的组合框属性中:

  • DataSource = TableB BindingSource

  • DisplayMember = CityName

  • ValueMember = idB

  • SelectedValue = SpectacleBindingSource.numB

然后是我尝试使用的代码:

        private void cbGenreB_SelectedIndexChanged(object sender, EventArgs e)
    {
        int value = 0;


        if (cbGenreB.SelectedIndex !=-1)
        {
            compare = (cbGenreB.SelectedIndex);

            this.ATableAdapter.FillByCityB(this.billetterieDataSet.A, compare);
        }

选择请求没有问题,然后我收到此错误消息:

http://gyazo.com/1bb7b1792c3dce676b257245bbb72e97

感谢您的帮助

【问题讨论】:

    标签: c# sql visual-studio-2010 visual-studio-2012


    【解决方案1】:

    ADO.NET 的最佳实践是在完成读取数据后始终关闭 DataReader。如果您使用的Connection仅用于返回DataReader,请在关闭DataReader后立即关闭。

    您可以使用 DataSet 来存储所有行或创建另一个连接来避免此问题。

    更多信息:https://msdn.microsoft.com/en-us/library/ms971481.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2013-09-10
      相关资源
      最近更新 更多