gridview中的Oracle数据库表

时间:2014-01-21 09:02:57

标签: c# winforms oracle gridview

我想从我的oracle数据库中的查询中获取结果并将其放在gridview中。现在我的问题是,我不知道如何在gridview中输出它。我正在使用工具箱中的gridview,我的oracle连接正在运行。我也有正确的SELECT查询,我可以在列表框中输出。我只是不知道如何在gridview中执行此操作。我找了它,我发现了这个:How to populate gridview with mysql?虽然这对我没有帮助。

如何在gridview中输出它,使其看起来与oracle数据库中的普通表完全相同?

我应该使用什么以及如何使用?

这是我的代码:

public void read()
        {
            try
            {
                var conn = new OracleConnection("")
                conn.Open();
                OracleCommand cmd = new OracleCommand("select * from t1", conn);
                OracleDataReader reader = cmd.ExecuteReader();
                DataTable dataTable = new DataTable();
            while (reader.Read())
            {
                var column1 = reader["vermogen"];
                column = (column1.ToString());
                listBox1.Items.Add(column);
            }
            conn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

3 个答案:

答案 0 :(得分:9)

要将DataTable绑定到DataGridView您的代码,只需将其更改为

    public void read()
    {
        try
        {
            using(OracleConnection conn = new OracleConnection("....."))
            using(OracleCommand cmd = new OracleCommand("select * from t1", conn))
            {
                conn.Open();
                using(OracleDataReader reader = cmd.ExecuteReader())
                {
                     DataTable dataTable = new DataTable();
                     dataTable.Load(reader);
                     dataGridView1.DataSource = dataTable;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
 }

OracleDataReader可以传递给DataTable的Load方法,然后表就可以绑定到DataGridView DataSource属性了。我还添加了一些使用声明,以确保正确处理所用的一次性物品。 (特别是在异常的情况下不关闭OracleConnection是非常昂贵的)

答案 1 :(得分:0)

您也可以使用DataSet

   public void read()
   {
       try
       {
           OracleConnection conn = new OracleConnection("");
           OracleCommand cmd = new OracleCommand("select * from t1", conn);
           conn.Open();
           cmd.CommandType = CommandType.Text;
           DataSet ds = new DataSet();
           OracleDataAdapter da = new OracleDataAdapter();
           da.SelectCommand = cmd;
           da.Fill(ds);
           dataGridView1.DataSource = ds.Tables[0];

       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
       }
   }
}

答案 2 :(得分:0)

首先建立连接,以防万一您没有使用连接字符串进行全局建立。然后将oleDbcommand用于要执行的oracle sql命令。就我而言,它是“ select * from table_name”,它将显示从表到datagrid的所有数据。我在一个按钮中编写了此代码,以在数据网格上显示数据。

[1,1,0,1,0,0,1,0], [1,0,0,1,1,0,0,1],Result).

%and_list([Head| Tail], [Head| Tail2]) :-
 %   p(Head),
 %   and_list(Tail, Tail2).

and_list([Head| Tail], List) :-
    \+ p(Head),
    and_list(Tail, List).
p(0).


?- and_list([1,1,0,1,0,0,1,0], List).
List = [0, 0, 0 , 0] ;

?- and_list([1,0,0,1,1,0,0,1],List).
List = [0,0,0,0] ;


%how many times  0

result(N,[],0).
result(H,[H|T],X) :-
    result(H,T,XT),
    X is NT+1.
result(N,[H|T],N) :-
    N\=H,   % N\==H 
    result(N,T,X).