繁体   English   中英

从Oracle检索数据

[英]Retrieving data from Oracle

我想从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();

提前致谢。

选择使用“标签”显示多个行信息不是一个好选择。 我建议使用ListBox或Combobox或Multiline TextBox或事件Grid。 (所有构建为显示多个项目的控件)

但是您的代码还有其他问题。

这是我的写法(仍然使用单个标签)

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语句 ,该语句可确保在异常情况下也能正确关闭和处置连接,命令和读取器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM