62,046
社区成员
发帖
与我相关
我的任务
分享
var ids= new List<int>();
ids.Add(1);
ids.Add(2);
db.ExecuteSqlCommand("UPDATE obj_user SET user_xxx={0} WHERE user_id IN {1};", new object[] { "userxxxxx", ids})
//这样不行。
db.ExecuteSqlCommand("UPDATE [obj_user] SET user_xxx={0} WHERE user_id IN {1};", new object[] { "A", new int[]{1,2}})
//也不行,怎么传参数呢?
using (EFContext db = new EFContext())
{
SqlParameter s= new SqlParameter("@aa", SqlDbType.Int,50){Value=1};
db.Database.ExecuteSqlCommand("update a set a.code=@aa from safety_codeOpt b inner join safety_order a on a.big=b.big", s);
}
已测试。
CHARINDEX( ',' + CAST(id as varchar) + ',', ',' + @inStr + ',') > 0
if (parameters != null && parameters.Length > 0)
{
DbParameter[] array = new DbParameter[parameters.Length];
if (parameters.All((object p) => p is DbParameter))
{
for (int i = 0; i < parameters.Length; i++)
{
array[i] = (DbParameter)parameters[i];
}
}
else
{
if (parameters.Any((object p) => p is DbParameter))
{
throw EntityUtil.InvalidOperation(Strings.ObjectContext_ExecuteCommandWithMixOfDbParameterAndValues);
}
string[] array2 = new string[parameters.Length];
string[] array3 = new string[parameters.Length];
for (int j = 0; j < parameters.Length; j++)
{
array2[j] = string.Format(CultureInfo.InvariantCulture, "p{0}", new object[]
{
j
});
array[j] = dbCommand.CreateParameter();
array[j].ParameterName = array2[j];
array[j].Value = (parameters[j] ?? DBNull.Value);
array3[j] = "@" + array2[j];
}
dbCommand.CommandText = string.Format(CultureInfo.InvariantCulture, dbCommand.CommandText, array3);
}
dbCommand.Parameters.AddRange(array);
}