【问题标题】:How to search data in gridview using a TextBox value with an Oracle Database如何使用带有 Oracle 数据库的 TextBox 值在 gridview 中搜索数据
【发布时间】:2017-09-23 06:04:25
【问题描述】:

我试图在我的 Windows 窗体应用程序的 DataGridView 中显示 Oracle 数据,但它只返回一个灰色的空白视图。我目前的代码是:

        string insertquery = "select * from Candidate where CandidateName like '"+ txtBoxSearchData.Text +"%'";

        OracleConnection con = new OracleConnection(oradb);
        con.Open();
        OracleCommand cmd = new OracleCommand();
        cmd.Connection = con;
        cmd.CommandText = insertquery;

        try
        {
            OracleDataReader reader = cmd.ExecuteReader();

            OracleDataAdapter orada = new OracleDataAdapter(cmd);
            DataTable dataTable = new DataTable();
            orada.Fill(dataTable);
            dataTable.Load(reader);
            BindingSource bSource = new BindingSource();
            bSource.DataSource = dataTable;
            dataGridViewSearch.DataSource = bSource;
            orada.Update(dataTable);

        }
        catch(ArgumentException ex)
        {
            MessageBox.Show("Error: " + ex.Message);
        }
        catch(OracleException ex1)
        {
            MessageBox.Show("Error: " + ex1.Message);
        }
        finally
        {
            cmd.Dispose();
            con.Dispose();
        }
    }

我很肯定我不需要在我的 Try 语句中使用所有这些函数,但我遇到了许多不同的方法来做到这一点 - 我只是将所有这些方法都包含在我的代码中进行实验。连接字符串也是正确的,因为我已通过应用程序另一部分中的查询成功地将数据添加到表中。

【问题讨论】:

    标签: c# oracle winforms datagridview


    【解决方案1】:

    执行以下操作就足够了。应该不需要 OracleDataAdapter 或 BindingSource。只是不能在这里测试,因为我没有 Oracle 数据库。

    public void fillDataGrid()
        {
            try
            {
                using(OracleConnection connection = new OracleConnection("connectstring"))
                using(OracleCommand cmd = new OracleCommand("select * from my super table", connection ))
                {
                    connection .Open();
                    using(OracleDataReader oracleDataReader = cmd.ExecuteReader())
                    {
                         DataTable dataTable = new DataTable();
                         dataTable.Load(oracleDataReader );
                         myDataGrid.DataSource = dataTable;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2011-08-19
      • 2019-02-20
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多