我得到这个错误“ORA-01722:非法/无效号码”甲骨文插入查询
decimal first2var = Convert.ToDecimal(var1);
decimal id_refeicao;
//...
// save values in var insted of lables
decimal id_usuario = (decimal)dr.GetInt32(0);
//...
var idUsuarioParameter = new OracleParameter
{
ParameterName = "id_usuario",
OracleDbType = OracleDbType.Decimal,
Direction = ParameterDirection.Input,
Value = id_usuario
};
var idRefeicaoParameter = new OracleParameter
{
ParameterName = "id_refeicao",
OracleDbType = OracleDbType.Decimal,
Direction = ParameterDirection.Input,
Value = id_refeicao
};
var var1Parameter = new OracleParameter
{
ParameterName = "first2var",
OracleDbType = OracleDbType.Decimal, //-- populate with correct oracle type
Direction = ParameterDirection.Input,
Value = first2var
};
OracleConnection connection = new OracleConnection(oradb);
connection.Open();
cmd.Connection = connection;
cmd.CommandText = "INSERT INTO SER_REFEICAO_USUARIO (USUARIO, REFEICAO, DATA_HORA, ORIGEM) VALUES(:id_usuario, :id_refeicao, SYSDATE , :first2var)";
cmd.Parameters.Add(idUsuarioParameter);
cmd.Parameters.Add(idRefeicaoParameter);
cmd.Parameters.Add(var1Parameter);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
connection.Close();
谁能帮我什么,我做错了,如果我硬代码我在我的插入查询值,它工作正常,但如果我通过上面的参数,所以我得到了错误。
你为什么在你的命令tex里有'var2',但是添加'var1'作为参数?另外,是数字或字符串? –
@DanielKelley ID是数字,但我定义了数据类型字符串,像这样“字符串id_usuario” – user2956373
表SERCREFEICAO_USUARIO'的定义怎么样,你能告诉我们每个列是什么类型? –