正在从Oracle检索数据
本文关键字:检索 数据 Oracle | 更新日期: 2023-09-27 18:26:48
我想从oracle数据库中检索数据,下面是我的代码,我的sql查询有4个结果,如何在标签中检索4个结果。
代码
OracleConnection con = new OracleConnection(
"Data Source=10.127.240.216/ipcldb;User ID=ipcltos;Password=ipcltos;Unicode=True");
con.Open();
OracleCommand cmd = new OracleCommand(
"select Initcap(ZZFNAME) ZZFNAME
from sap_empmst where substr(GBDAT,1,6) = substr(sysdate,1,6)
and stat2 =3 and werks in('RIGC','IPGC') and plans<99999999 order by persk", con);
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
// int i;
// for (i = 0; i < 10; i++)
Label1.Text = dr.GetString(0);
con.Dispose();
提前谢谢。
选择使用标签显示多行信息不是一个好选择。我建议使用列表框或组合框或多行文本框或事件网格。(所有用于显示多个项目的控件)
但是您的代码还有其他问题。
这里我将如何写它(仍然使用单一标签)
string cmdText = @"select Initcap(ZZFNAME) ZZFNAME
from sap_empmst
where substr(GBDAT,1,6) = substr(sysdate,1,6) and stat2 =3
and werks in('RIGC','IPGC')
and plans<99999999
order by persk";
using(OracleConnection con = new OracleConnection(.....))
using(OracleCommand cmd = new OracleCommand(cmdText, con))
{
con.Open();
using(OracleDataReader dr = cmd.ExecuteReader())
{
while(dr.Read())
Label1.Text += dr.GetString(0);
}
}
解决单标签问题的方法是使用dr.Read()调用的布尔返回值围绕读取器构建一个循环。然后使用+=将当前记录值连接到标签的前一内容
另一个重要的变化围绕着using语句,该语句确保在异常情况下正确关闭和处理连接、命令和读取器