我试图在列表中获取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;
}
注意我无法更改Scaler功能。
更新
StrQuery = Select Type_desc from type_mst where Type_Code = 'PAR' and Type_Abbr ='PUR'
和查询的值
买方
答案 0 :(得分: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;
}