• 小结牛腩新闻发布系统遇到的问题



    在学习牛腩新闻发布系统时候,到目前遇到这些问题在这里做一个小结。有些

      很简单,有些是一些技巧,有些则是一些关于优化的积累。在这里与大家分

    享。


    问题汇总


    .在新建的web程序中,没有sln文件。


    只有新建的winform程序中,才会出现相应的sln文件,这个文件是用于打


    开解决方案的。而web程序的sln存在于vs默认的文档下面会找到。打开网


    站项目的时候,可用打开网站。


    .使用try catch或者 using来关闭数据库连接


    : using

     

    using (sdr=sqlcmd.ExecuteReader(CommandBehavior .CloseConnection ))
                {
     
                    //将查询结果加载到dt对象中
                    dt.Load(sdr);          
     
                }
    Try catch
               try
                {
                 
                    //将SQL语句与连接对象传入执行查询对象
                    sqlcmd = new SqlCommand(sql,GetConn ());
     
                   //执行查询
                    sqlcmd.ExecuteNonQuery();
     
                   //返回查询结果
                    res = sqlcmd.ExecuteNonQuery();
                    return res;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                   //判断现行数据连接状态来改变数据库状态
                    if (sqlconn.State ==ConnectionState.Open)
                    {
     
                        sqlconn.Close();
     
                    }
                }              
            }

     


    .如何传入sql 参数数组?


    //传入参数数组
     
               SqlParameter[] paras =newSqlParameter[]  {
                    new SqlParameter("@caName",caName ),
                    new SqlParameter("@id",id)


    .连续删除表内某个id之间的数据


    Delete * from 表名 where id in (id1,id2)

    .触发器中的instead of 


    Instead of代替删除.例如:需要删除新闻类别的类别同时删除该类别下的新


    .但是由于外键的原因是无法删除的.这时候使用关键字 instead of,这样一


    来就是在触发器实施删除新闻后再取删除相应的类别,也就是将删除的工作延


    后到触发器中.

     

      

    .在数据库中使用自增长id,但是发现更新过几次后发现还是随机产生的数字十分没有规律。这是为什么? 


    这是由于你每次添加的时候,可能这一次没有添加成功。但是系统也自动记录了一


    此添加活动。这样等到你下次添加成功的时候你就会发现为什么自增长的id号会出


    现中间“断码”了。这样一来你的id顺序就不是正常的排序了。            


     

    .在实体类里新建方法,这样就可以直接调用方法给实体类赋值


    ///<summary>
        /// 新闻评论实体类
        /// </summary>
        public class CommentEntity
        {
            private string id;
            /// <summary>
            /// 主键,自增长
            /// </summary>
            public string Id
            {
                get { return id; }
                set { id = value; }
            }
     
            private string content;
            /// <summary>
            /// 评论内容
            /// </summary>
            public string Content
            {
                get { return content; }
                set { content = value; }
            }
     
            private string userIp;
            /// <summary>
           /// 评论人Ip
            /// </summary>
            public string UserIp
            {
                get { return userIp; }
                set { userIp = value; }
            }
     
     
            private string createTime;
            /// <summary>
            /// 评论发表时间
            /// </summary>
            public string CreateTime
            {
                get { return createTime; }
                set { createTime = value; }
            }
     
     
            private string newsId;
            /// <summary>
           /// 所属新闻ID
            /// </summary>
            public string NewsId
            {
                get { return newsId; }
                set { newsId = value; }
            }
     
     
            public CommentEntity()
            { }
            /// <summary>
            /// 使用方法来给这个实体类赋值
            /// </summary>
           /// <param name="content">评论内容</param>
           /// <param name="userip">评论者Ip</param>
           /// <param name="newid">新闻id</param>
            public CommentEntity(stringcontent,string userip,string newid )
            {
                //给commentEntity类下面的content属性赋值
                this.content = content;
                //给commentEntity类下面的userIp属性赋值
                this.userIp = userip;
                //给commentEntity类下面的NewsId属性赋值
                this.NewsId = newid;
            }
     
        }


     

    .如何在在数据库中使数据升序或者降序排列


    SELECT * FROM comment WHERE newsId =3 order by createTime asc /desc

     

    .注释中的todo的作用


    这样可以以此来表名没有完成编写的类,点击-视图-任务列表,我们可以看到


    我们还没有完成的代码。


    .如何向带有参数的存储过程传入参数


    1.首先需要在sqlhelper里面建立一个可以传参的方法,也就是说需要至少三个


    参数(存储过程名,参数组,执行的类型(以此来判断是存储过程还是SQL语句))



    2.第二个在b层调用的时候,需要首先定义存储过程名string类型


    定义参数利用

    Sqlparameterparas =new sqlparameter[]

    {

    New sqlparameter("@参数名",实际的值)

    };

    3.d层最重要的是


    //传入parameter参数组

                 sqlcmd.Parameters.AddRange(paras);

    以此来传入数组



    .两种方式来执行sqlcmd,需要执行的sql与连接对象

    1.
    Sqlcmd.connection =sqlconn;
    Sqlcmd.commandtext=sql;
    2.
    Sqlcmd=new sqlcommand(sql,sqlconn);



  • 相关阅读:
    vue——项目技术储备
    Framework7—— 混合开发
    CSS——常见的问题
    Vue——常见问题
    Vue——使用 watch 注意项
    Node——微服务架构(二)
    C——基本词汇
    Go——空接口与断言
    Node——PM2
    Vue——组件异步加载与路由懒加载
  • 原文地址:https://www.cnblogs.com/guziming/p/4232731.html
Copyright © 2020-2023  润新知