牛腩视频前十集错误解析

前言:

    在看牛腩视频前10集的时候,我发现了在执行程序操作的时候一些惯常的错误,分享一下:

1、数据库中插入新闻类的时候出现了不能插入的错误

牛腩视频前十集错误解析_第1张图片

  主要是由于新闻类别和新闻内容具有主键和外键的关系,在category中不存在caID为才会出现这样的错误。

2.登录错误,主要是链接数据库时候语句出错了:
牛腩视频前十集错误解析_第2张图片
正确应该是如下,而且可能是由于数据库没有打开的问题。
string connStr = @"server=数据库服务器的名称;database=newsystem;User ID=sa;PWD=1";  

3.sql数据中插入的时候出现了如下的:
牛腩视频前十集错误解析_第3张图片
    这时候数据库中news表中的newsid是一个标识的列,会自动增长,也就是identity_insert 为off的时候,不能够向其中插入显示值,只能让其自动的增加。但是如果想要向其中插入显示值,可以进行设置

1.新建查询语句中
set identity_insert 表名 on
执行语句
go
2.在属性中修改它的标识为否。
identity:意思是标识

延伸知识点:
SQL Server中的标识列又称标识符列,习惯上又叫自增列。
该种列具有以下三种特点:
1、列的数据类型为不带小数的数值类型
2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值
3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。
 
4.sql删除的时候出现了错误

主要原因是由于主外键的关系,删除了外键表的主键值,那么会对与之有联系的表造成影响,所有出现了错误。
解决的方案:
1.采用存储过程
2.触发器:触发某一些东西!
 主要讲了after和insteadof之间的关系,其中after是指语句结束之后再进行后续的操作,insteadof表示的是前面的语句由后面的语句所代替。

5.在进行用sql语句删除的时候出错

 因为外键和主键之间的关系是一对多的关系,所有在我们写的时候不能写成(delete comment where newsID =(select newsID from news where caid=@caid ),因为,这里的newsid会返回多条,所有只有将=改成in,表示了一个集合。

总结:
      在进行vs操作的过程中,凡是需要涉及到sql语句的增删改查,我们都可以从sql server中首先进行尝试,将由sql语句引起的错误降到最低!


你可能感兴趣的:(牛腩视频前十集错误解析)