mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Update oracle parameter is key word
This commit is contained in:
parent
3594e31056
commit
53eaabdc08
@ -38,6 +38,7 @@ namespace OrmTest
|
|||||||
//sql
|
//sql
|
||||||
var dt2 = db.Ado.GetDataTable("select * from \"ORDER\" where @id>0 or name=@name", new { id = 1, name = "2" });
|
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
|
//Stored Procedure
|
||||||
//var dt3 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 });
|
//var dt3 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 });
|
||||||
//var nameP = new SugarParameter("@name", "张三");
|
//var nameP = new SugarParameter("@name", "张三");
|
||||||
|
@ -87,6 +87,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public override DbCommand GetCommand(string sql, SugarParameter[] parameters)
|
public override DbCommand GetCommand(string sql, SugarParameter[] parameters)
|
||||||
{
|
{
|
||||||
|
sql = ReplaceKeyWordParameterName(sql, parameters);
|
||||||
OracleCommand sqlCommand = new OracleCommand(sql, (OracleConnection)this.Connection);
|
OracleCommand sqlCommand = new OracleCommand(sql, (OracleConnection)this.Connection);
|
||||||
sqlCommand.BindByName = true;
|
sqlCommand.BindByName = true;
|
||||||
sqlCommand.CommandType = this.CommandType;
|
sqlCommand.CommandType = this.CommandType;
|
||||||
@ -104,6 +105,32 @@ namespace SqlSugar
|
|||||||
CheckConnection();
|
CheckConnection();
|
||||||
return sqlCommand;
|
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)
|
public override void SetCommandToAdapter(IDataAdapter dataAdapter, DbCommand command)
|
||||||
{
|
{
|
||||||
((OracleDataAdapter)dataAdapter).SelectCommand = (OracleCommand)command;
|
((OracleDataAdapter)dataAdapter).SelectCommand = (OracleCommand)command;
|
||||||
|
Loading…
Reference in New Issue
Block a user