Как вы возвращаете целое число из базы данных, используя c #? - PullRequest
1 голос
/ 22 августа 2011

Привет всем. Я выбираю столбец из таблицы, которая возвращает поле с номером. Я хочу вернуть это число целому числу в c #, чтобы я мог увеличить число на 1 после его получения. Я использую Visual Studio 2010, C # и Oracle в качестве базы данных

Это мой код: **Привет, ребята. Я пытался, как вы сказали мне, но это не сработало. Это сбой - + $ исключение {"Невозможно привести объект типа '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;
    } 

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы можете использовать Parse или TryParse методы Int32 Структура.

Редактировать: Я нашел это решение в документах 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);

Для получения дополнительной информации вы можете проверить документ Я упоминал.

2 голосов
/ 22 августа 2011

Ваш комментарий предполагает, что результатом будет OracleDataReader - в этом случае используйте



var reader = dba.QueryDatabase(sqlQuery);
if(reader.Read())
{
  return reader.GetInt32(0);
}
// else error
throw new Exception("no result found");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...