一、在SQLSERVER设计中,DATETIME类型的数据的默认值设定时:‘1900-01-01’和0是一样的,但是1900-01-01的结果就非常奇怪了。
二、在C#中不能处理数据库中的空值即:NULL,所以要设定默认值。
三、可以级联删除,但是可以不用。
四、在SQL语句中,不用参数的形式而用连接字符串时,容易出错,并存在安全漏洞。
比如:
连接字符串的形式:string sSql="Select * from Employee where Name='"+TxtUserName.Text +"' and Password='"+TxtPassword.Text +"'";
参数的形式:string sSql="Select EmployeeID,Power from Employee where Name=@Name and Password=@Password"
连接字符串的形式容易出错的例子:TxtUserName.Text=“ddd'dddd”肯定报错,因为SQL语句中的‘的不对应;
连接字符串的形式安全漏洞的例子:TxtUserName.Text=“DDD' OR 1=1 --”
或:TxtUserName.Text=“DDD' delete from tablename --”
--是SQLSERVER中的注释语。很明显是不安全的。