#c# #asp.net
#c# #asp.net
Вопрос:
Я пытаюсь получить String
значение в списке, но получаю ошибку как
Входная строка была в неправильном формате.
В сети доступно много полезных ссылок, но они не разрешили мою.
Вот мой код.
newRow["EXP_TYPE_ID"] = Convert.ToString(e.Record["EXP_TYPE"]);
newRow["EXP_TYPE"] = CF.ExecuteScaler("Select Type_desc from type_mst where Type_Code = 'PAR' and Type_Abbr ='" Convert.ToString(e.Record["EXP_TYPE"]) "'").ToString();
и CF.ExecuteScaler
public string ExecuteScaler(string StrQuery)
{
DB.EConnection();
cmd = new OracleCommand(StrQuery, DB.conn);
cmd.Connection = DB.conn;
int val=Convert.ToInt32(cmd.ExecuteScalar());
DB.conn.Close();
string ret = val.ToString();
return ret;
}
Обратите внимание, что я не могу изменить функцию масштабирования.
Обновить
StrQuery = Select Type_desc from type_mst where Type_Code = 'PAR' and Type_Abbr ='PUR'
и значение запроса
ПОКУПАТЕЛЬ
Комментарии:
1. Не могли бы вы, пожалуйста, показать нам значение
StrQuery
, когда вы передаете егоExecuteScaler()
?2. Где именно вы получаете ошибку?
3. @MegaTron: обновил вопрос с более подробной информацией
4. @sachin: я получаю ошибку при выполнении моего запроса.
5. какой тип
Type_desc
из запроса? если это строка, каковы возможные значения? похоже, что она не конвертируется вint
, и именно поэтому она выдает исключение
Ответ №1:
Я полагаю, что исключение выдается в следующей строке?
int val=Convert.ToInt32(cmd.ExecuteScalar());
Как вы уже сказали, cmd.ExecuteScalar()
возвращает значение "PURCHASER"
, в которое затем вы пытаетесь преобразовать int
. Это явно невозможно, и это то, о чем говорит исключение.
Пожалуйста, попробуйте так:
public string ExecuteScaler(string StrQuery)
{
DB.EConnection();
cmd = new OracleCommand(StrQuery, DB.conn);
cmd.Connection = DB.conn;
string ret = Convert.ToString(cmd.ExecuteScalar());
DB.conn.Close();
return ret;
}
Комментарии:
1. получение ошибки как
cannot implicitly convert type int to string
в строкеConvert.ToInt32(cmd.ExecuteScalar());
2. @nad Но вы уже говорили: обратите внимание, я не могу изменить функцию масштабирования.
3. @MegaTron: я добавил еще одну функцию и переименовал ее. Я сказал, что не могу изменить функцию, но я могу добавить функцию