mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-05 17:37:58 +08:00
Update oracle parameter is key word
This commit is contained in:
parent
3594e31056
commit
53eaabdc08
@ -38,6 +38,7 @@ namespace OrmTest
|
||||
//sql
|
||||
var dt2 = db.Ado.GetDataTable("select * from \"ORDER\" where @id>0 or name=@name", new { id = 1, name = "2" });
|
||||
|
||||
var int1=db.Ado.GetInt("select @key as id from dual ", new { key = 1 });
|
||||
//Stored Procedure
|
||||
//var dt3 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 });
|
||||
//var nameP = new SugarParameter("@name", "张三");
|
||||
|
@ -87,6 +87,7 @@ namespace SqlSugar
|
||||
}
|
||||
public override DbCommand GetCommand(string sql, SugarParameter[] parameters)
|
||||
{
|
||||
sql = ReplaceKeyWordParameterName(sql, parameters);
|
||||
OracleCommand sqlCommand = new OracleCommand(sql, (OracleConnection)this.Connection);
|
||||
sqlCommand.BindByName = true;
|
||||
sqlCommand.CommandType = this.CommandType;
|
||||
@ -104,6 +105,32 @@ namespace SqlSugar
|
||||
CheckConnection();
|
||||
return sqlCommand;
|
||||
}
|
||||
|
||||
private static string ReplaceKeyWordParameterName(string sql, SugarParameter[] parameters)
|
||||
{
|
||||
if (parameters.HasValue())
|
||||
{
|
||||
foreach (var Parameter in parameters)
|
||||
{
|
||||
if (Parameter.ParameterName!=null&&Parameter.ParameterName.ToLower().IsIn("@user", "@level", "@key", ":user", ":level", ":key"))
|
||||
{
|
||||
if (parameters.Count(it => it.ParameterName.StartsWith(Parameter.ParameterName)) == 1)
|
||||
{
|
||||
var newName = Parameter.ParameterName + "_01";
|
||||
sql = sql.Replace(Parameter.ParameterName, newName);
|
||||
Parameter.ParameterName = newName;
|
||||
}
|
||||
else
|
||||
{
|
||||
Check.ExceptionEasy($" {Parameter.ParameterName} is key word", $"{Parameter.ParameterName}Êǹؼü´Ê");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
public override void SetCommandToAdapter(IDataAdapter dataAdapter, DbCommand command)
|
||||
{
|
||||
((OracleDataAdapter)dataAdapter).SelectCommand = (OracleCommand)command;
|
||||
|
Loading…
Reference in New Issue
Block a user