簡體   English   中英

從WebAPI中的Oracle查詢返回多行

[英]Return Multiple Rows from Oracle Query in WebAPI

我正在嘗試返回數據庫中所有或全部行的數量,但是下面的查詢僅返回第一行的第一列,並且根據調試,它正在獲取數據,但是似乎並沒有正確存儲它。 dr.Read似乎沒有問題,因為在我的調試停止點上,它顯示了該點返回的數據。 我是否使用MessageBox.Show錯誤地顯示了數據?

OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select t2.meternumber, t1.blinkdate, t1.blinkcount from (select * from cecc_processed_blinks where trunc(blinkdate) between to_date('01-may-15', 'dd-mon-yy') and to_date('08-may-15', 'dd-mon-yy')) t1 left join meteraccts t2 on t1.serialnumber = t2.serialnumber order by t1.blinkdate desc";
            cmd.CommandType = CommandType.Text;
            OracleDataReader dr = cmd.ExecuteReader();
            dr.Read();
            //Put it in a message box...
            MessageBox.Show(dr.GetString(0), "Returned Results");
            conn.Dispose();

請參閱以下網址上有關OracleDataReader的文檔: https : //msdn.microsoft.com/zh-cn/library/system.data.oracleclient.oracledatareader.read%28v=vs.110%29.aspx

請注意, dr.Read()僅讀取一行數據,您需要類似以下內容:

while (dr.Read())
{
    // per row logic
}

此外,在您的聲明中:

MessageBox.Show(dr.GetString(0), "Returned Results");

這只會為閱讀器返回的行的第一列顯示一個MessageBox “ 0”是您的列索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM