我想从我的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);
}
}
答案 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).