日期:2014-05-17  浏览次数:20492 次

解释一段C#代码 急!!
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(WebProject.Model.BaseData.Tea_News model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update Tea_News set ");
strSql.Append("Title=@Title,");
strSql.Append("ImgUrl=@ImgUrl,");
strSql.Append("Body=@Body,");

strSql.Append(" where NewsID=@NewsID ");
SqlParameter[] parameters = {
new SqlParameter("@NewsID", SqlDbType.Int,4)
)};
parameters[0].Value = model.NewsID;


DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}


大体解释以下每个意思   谢谢了

------最佳解决方案--------------------
/// <summary>
    /// 更新一条数据
    /// </summary>
    public void Update(WebProject.Model.BaseData.Tea_News model)
    {
         /**
          用StringBuilder类拼接SQL语句
          也可写成 string="update Tea_News set Title=@Title,ImgUrl=@ImgUrl,Body=@Body 
          where NewsID=@NewsID";
          * 参考http://blog.163.com/soli1988_blog/blog/static/1768952722012102813438589/
         **/
         StringBuilder strSql=new StringBuilder();
         strSql.Append("update Tea_News set ");
         strSql.Append("Title=@Title,");
         strSql.Append("ImgUrl=@ImgUrl,");
         strSql.Append("Body=@Body,");  //这里是没有逗号的,错误
         strSql.Append(" where NewsID=@NewsID ");

         //修改语句,用@NewsID初始化SqlDbType.Int类的新实例
         //参考http://www.cnblogs.com/pioneerlc/archive/2011/05/21/2053052.html
         SqlParameter[] parameters = {
         new SqlParameter ("@NewsID", SqlDbType.Int,4))};
         parameters[0].Value = model.NewsID;  //model(可参考三层架构)实例中的NewsID字段,

         //执行语句
         DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
    }

------其他解决方案--------------------
strSql.Append("Title=@Title,");
我想主要是这句看不懂吧?  我猜可能是想在 html中生成模板吧? 以便以后用replace("@Title","页面标题")替换生成静态页
------其他解决方案--------------------
StringBuilder 是拼接字符串的。
Append(“xx”) 就是把xx加到后面。
@xx理解成占位符,

new SqlParameter("@NewsID", SqlDbType.Int,4)
)}; 总的指导占位符是什么玩意儿吧  哦 他是int 类型的

parameters[0].Value = model.NewsID; 占位符总的有值吧。 这是给他一个值 

很明显 你代码里没有给全。


DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);这就是执行那串sql