黑马程序员(11)——主键类型的选择自动增长和GUID 、项目初始框架、数据的软删除、写入数据、读取数据

本文介绍了数据库设计中的主键选择策略,包括自动增长ID和GUID的优缺点,并详细讲解了软件项目的初始框架搭建过程,涉及类库项目、数据库创建及项目间的引用关系。此外,还探讨了数据的软删除概念及其应用场景,以及如何在数据库中正确处理空值。
Windows Phone 7手机开发.Net培训、期待与您交流!


01主键类型的选择自动增长和GUID   



GUID:效率到,数据导入导出方便,业界


数据库中通过newid这个函数得到GUID(SQLServer2005之后有)是uniqueidentifier类型
VS中Guid g1=Guid.NewGuid();来生成。值类型。不可以为空。




02项目初始框架


类库项目:生成DLL(程序集)。里面的几个.cs之间没有任何关系,在使用的时候需要添加引用。


建立新的数据库:1.根节点》安全性》创建登录名;2创建的数据库节点》安全性》创建用户(登陆名选之前创建的登录名,勾选dbowner)


两个项目之间要是有引用,需要如同system.configuration那样添加引用。


注意:1.App.config要放到UI层;2.DAL可以通过ConfigurationManager独到主项目中的app.config中的配置信息




引用关系:DAL引用Modal,UI引用DAL和Modal.


1.出现问题一定可以解决;2.不要轻信系统会有bug




03 数据的软删除


软删除:可能在需求不清楚的请款下,误删全部数据,这时可以设置这条数据为某些权限不可见,那些人就认为是删除了


一个表引用另外一张表的时候一定要引用主键


在一个表中添加一个新的字段的时候,可能他提示必须是可以null。这时先到表中把这个字段添,再到设计把他改成不可以为null




04写入数据

private void btNull_Click(object sender, RoutedEventArgs e)
        {
            string name = txtName.Text;
            string age = txtAge.Text;
            string height = txtHeight.Text;

            object objName,objAge,objHeight;
            if(name.Length<=0)//判断是否为空。
            {
            objName=DBNull.Value;//DBNull.Value用来表示数据库中的NULL
            }
            else
            {
            objName=name;
            }
            if (age.Length <= 0)//判断是否为空。
            {
                objAge = DBNull.Value;//DBNull.Value用来表示数据库中的NULL
            }
            else
            {
                objAge = name;
            }
            if (height.Length <= 0)//判断是否为空。
            {
                objHeight = DBNull.Value;//DBNull.Value用来表示数据库中的NULL
            }
            else
            {
                objHeight= name;
            }


 
            
            SqlHelper.ExecuteNonQuery(@"insert into T_person(Name,Age,Height)
                    values(@Name,@Age,@Height)",
                         //new SqlParameter("@Name",name),
                         //new SqlParameter("@Age", age),
                         //new SqlParameter("@Height", height));
                         new SqlParameter("@Name",objName),
                         new SqlParameter("@Age", objAge),
                         new SqlParameter("@Height", objHeight));

            MessageBox.Show("accomplish");
        }


05读取数据

private void button2_Click(object sender, RoutedEventArgs e)
        {
            //查询的时候要对DBNull谨慎处理
            DataTable table=SqlHelper.ExecuteDataTable("select * from T_person where Id=1 ");

            DataRow row = table.Rows[0];

            string name,age;
	    int ? height;
            if (row["Name"] == DBNull.Value)
            {
                name = null;
            }
            else
            {
                name = (string)row["Name"];
            }
            if (row["Age"] == DBNull.Value)
            {
                age = null;
            }
            else
            {
                age = (string)row["Age"]; ;//如果age事int行的话,要定义int? age
            }
            if (row["Heihgt"] == DBNull.Value)
            {
                height = null;
            }
            else
            {
                height = (int)row["Height"];
            }
            
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值