簡體   English   中英

如何使用c#從數據庫返回一個整數?

[英]How do you return an integer from a database using c#?

嗨,大家好。 我從表中選擇一個列,該列返回帶有數字的字段。 我希望將此數字返回到c#中的整數,以便在獲取它之后我可以將整數增加1。 我使用visual studio 2010,C#和oracle作為我的數據庫

這是我的代碼: **大家好。 我按照你告訴我的方式嘗試但是沒有用。 崩潰 - + $ exception {“無法將'Oracle.DataAccess.Client.OracleDataReader'類型的對象強制轉換為'System.IConvertible'。”} System.Exception {System.InvalidCastException}

**

public static int GetRunNumber(string date)
    {
        int result;

        DatabaseAdapter dba = DatabaseAdapter.GetInstance();
        string sqlQuery = "SELECT RUN FROM LOAD_CONTROL " +
                          "WHERE START_DATE = (SELECT MAX(START_DATE) " +
                          "FROM LOAD_CONTROL " +
                          "WHERE LOAD_DATE = to_date('" + date + "', 'dd/mm/yyyy')) " +
                          "AND LOAD_DATE = to_date('" + date + "', 'dd/mm/yyyy') ";

        result = Convert.ToInt32(dba.QueryDatabase(sqlQuery));
        return result;
    } 

您的評論表明結果將是OracleDataReader - 在這種情況下使用



var reader = dba.QueryDatabase(sqlQuery);
if(reader.Read())
{
  return reader.GetInt32(0);
}
// else error
throw new Exception("no result found");

您可以使用Int32 Structure的ParseTryParse方法。

編輯:我在Oracle的文檔中找到了這個解決方案。 這是一種不同的方法,但可能適合您。

// Connection string for your app
string constr = "User Id=scott;Password=tiger;Data Source=oracle"; 

// Creates new connection object.
OracleConnection con = new OracleConnection(constr);
con.Open();

// Change below with your query.
string cmdstr = "SELECT * FROM EMPINFO";
OracleConnection connection = new OracleConnection(constr);
OracleCommand cmd = new OracleCommand(cmdstr, con);
OracleDataReader reader = cmd.ExecuteReader();

// Returns the first column of the first row returned from your query and 
// converts it to Int32. You should replace '0' with the column no you desire.
return reader.GetInt32(0);

有關詳細信息,您可以查看我提到的文檔

暫無
暫無

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

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