如何使用带有Oracle数据库的TextBox值在gridview中搜索数据

时间:2017-04-26 02:26:18

标签: c# oracle winforms datagridview

我试图在我的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语句中使用所有这些函数,但是我遇到了许多不同的方法 - 我只是将所有这些都包含在我的代码中进行实验。连接字符串也是正确的,因为我已成功通过我的应用程序的另一部分中的查询将数据添加到表中。

1 个答案:

答案 0 :(得分:0)

做类似以下的事情就足够了。不需要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);
        }
    }
 }