这是不是一种好的做法?
cmd.CommandText = "StoredProcedureName_InsertUserDetails"; //Is this line a good or bad since Sql injection is possible here.
cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.VarChar)).Value=name;
cmd.Parameters.Add(new SqlParameter("@age",SqlDbType.Int)).Value=age;
发布于 2019-04-16 03:03:51
下面是添加了Commandtype
的代码
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcedureName_InsertUserDetails"; // This line is ok
cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.VarChar)).Value=name;
cmd.Parameters.Add(new SqlParameter("@age",SqlDbType.Int)).Value=age;
通过将存储过程编写为字符串来执行存储过程是一种好的做法吗?
可能会出什么问题?
CommandText
过程名称与调用代码不同步的情况:如果调用代码引用未知的存储过程,则可能会出现运行时异常。测试,以注意存储过程是否有损坏的C#
如果存储过程仅插入单个UserDetails
实体,则还可以使用实体框架。This article展示了如何通过在Fluent API中调用MapToStoredProcedures()
将实体CUD (创建、更新、删除)操作自动映射到存储过程。本文还解释了如何将您自己的自定义存储过程映射到EF实体。
https://stackoverflow.com/questions/55694358
复制相似问题