.NET 使用 Oracle.ManagedDataAccess.Client (也就是ODP.NET4.0,Oracle官方提供的数据访问组件),带参数访问数据库时,如果SQL语句中的参数顺序和参数数组中的顺序不一致时,会提示 “外部组件发生异常” 错误,所以一定要让参数顺序前后一致才可以。
例如:
var sql = @“UPDATE User SET MobileTel=:MobileTel WHERE Id=:Id”;
OracleParameter[] para = new OracleParameter[]
{
new OracleParameter(":Id",Id),
new OracleParameter(":MobileTel",MobileTel)
};
int rows = SqlHelper.ExecuteNonQuery(sql , para);
以上代码执行就会出错:一直会提示 “外部组件发生异常” 错误。
应该改成:
OracleParameter[] para = new OracleParameter[]
{
new OracleParameter(":MobileTel",MobileTel),
new OracleParameter(":Id",Id)
};
int rows = SqlHelper.ExecuteNonQuery(sql , para);
注意两个参数 Mobile 和 Id 在SQL语句和参数数组中的顺序都要一致。