相信很多人进行数据存储时,会遇上如标题的异常错误。

 

mysql修改表名,列名,列类型,添加表列,删除表列 

其实也不算上一个错误。

问题描述:

alter table test rename test1; –修改表名 

当你的程序中有宣告一个字段的数据类型为DateTime时,但你又没有赋值给它,就进行存储时,它就会得到这样一个结果。

     附加数据时,提示无法打开物理文件,操作系统错误5。如下图:

alter table test add  column name varchar(10); –添加表列 

看看下面的情况:
图片 1

图片 2

alter table test drop  column name; –删除表列 

看到否,在程序中DateTime默认情况之下是这个值{1/1/0001 12:00:00
AM},其实它就是.NET
Framework中DateTime类型最小默认值。而在数据库中DateTime类型字段,默认最小值是1/1/1753
12:00:00。显然,超出了MS SQL
DateTime数据类型的最小值范围,导致数据溢出错误。

 

alter table test modify address char(10) –修改表列类型 
||alter table test change address address  char(40) 

那我们怎解决它呢?其实是很简单的。只要在存储数据库之前判断一下,如果值等于”1/1/0001
12:00:00 AM” ,那就等System.Data.SqlTypes.SqlDateTime.Null

问题原因:**可能是文件访问权限方面的问题。**

alter table test change  column address address1 varchar(30)–修改表列名

看看代码示例:
图片 3

 

 

还可以使用DateTime.MinValue去替换Convert.ToDateTime(“1/1/0001 12:00:00
AM”)。
图片 4

解决方案:找到数据库的mdf和ldf文件,赋予权限即可。如下图:

 

当然,有一个前提是数据表存储这个字段是设为可空的,如果不是可空的,你需要在前端程序一定有值给它,也就没有这个情况出现了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注