我正在使用 OleDbCommand.ExecuteNonQuery() 将数据插入数据库:
ObjCommand = New OleDbCommand
ObjCommand.CommandType = CommandType.StoredProcedure
ObjCommand.CommandText = StrSQL
ObjCommand.Parameters.Add("field1", OleDbType.VarChar).Value = <something1>
ObjCommand.Parameters.Add("field", OleDbType.VarChar).Value = <something2>
(...)
(...)
ObjCommand.Parameters.Add("field50", OleDbType.VarChar).Value = <something50>
ObjCommand.Connection = GetDBConnection(StrConnectionString)
ObjCommand.Connection.Open()
<some integer> = ObjCommand.ExecuteNonQuery()
并且有一个只显示在最后一行的转换异常:
将数据类型 varchar 转换为 smallint 时出错
我想知道这是否是正常行为,以及我如何知道转换问题发生在哪里。
更新:
ObjCommand.Parameters.Add("@IdMunFatoGerador", OleDbType.VarChar).Value
= ObjNFe.idMunFatoGerador
我通过注释每一行并取消注释某些行找到了这一行,这一行给了我上述异常。
ObjNFe.idMunFatoGerador 是一个字符串,并且给了我“将数据类型 varchar 转换为 smallint 的错误”