救命啊,谁能帮我?父子表(主从表)问题!!完后再加100分!! 学生为外表member 里有个外键字段是学生ID查询的时候根据学生ID查询 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知楼上说的外表是何物?学生为主表。家庭成员为子表, 用家庭表中学生ID作外键对应 学生表ID查询关系的时候根据学生ID查询 如果你非要在学生表里放个字段负责所有的家庭信息的话关系不就变成多对多了,他们间的关系是一对多那必须得变3张表了学生 学生家庭信息表 家庭信息表学生ID 关联 学生家庭信息ID 家庭信息ID(分别一跳单独信息)其实只要2张表就好了学生ID 关联 家庭信息(学生ID做为外键) 家庭关系表:学生ID 关系 姓名 工作单位1001 儿子 龟 小河流水哗啦啦1001 母亲 鳖 大河流水咕噜噜1002 母亲 蟹 大江流水轰隆隆学生表:学生ID 姓名 性别 班级1001 张三 女 sexy01班1002 李四 女 sexy01班1003 赵五 人妖 Fk01 student表中有学生的主键字段吧。在member表中建student表的外键 还可以建立关系来强制业务规则 插入的时候可以把插入操作放在一个事务中先加入学生的信息 得到@@identity(就是该学生在student表中的主键ID)后 再根据这个ID在表member中插入他的家庭成员。 最后判断@@error 如果有错误的话全部回滚 否则就提交事务就可以了。 flaigd(骑白马的不一定是王子,可能是唐僧..) 这位大哥说的和我想的完全一样,就余最后一个问题了:我已经启用了事务,而且用@@identity得到了主表的ID,问题是当我提交的时候,判断@@error没有错误,但是子表中只传来了一条数据,点保存的时候就已经和主表的一条数据写入数据库中了,怎么才能保证子表的多条信息在录入完后和主表一想保存,怎样实现一对多数据的插入? 这个有点麻烦 因为mssql没有提供数组类型的参数 1.可以在ADO.Net中使用TranscationScope类。 这个简单点。2.或者把家庭成员的数据用自定义的结构保存起来比如 关系|姓名|工作单位,关系|姓名|工作单位 然后在存储过程中实现split的功能,用逗号分隔出来 再一条一条插入 很麻烦而且你还得确保你的字符串中没有和|,冲突的字符 当我在student表中插入"张三"的时候,其它的家庭成员怎么插入,问题就是家庭成员每次不至一个人,可能会好几个人,如何在插入一条数据的时候在另一个表中插入多条数据,并且两个表要有关联==========1。假如你是在写入学生数据的时候,同时写入其家庭成员数据,那么这两个操作要作为一个事务完成2。要点是,先写入学生数据,然后返回学生主键,紧接着写入家庭成员数据3。具体代码你可以参考我的文章如何获取自增长列(标识列)的ID,并写入另一张表(多对多关系插入数据示例) http://www.cnblogs.com/Jinglecat/archive/2007/07/05/806421.html文中我举的是,多对多关系的DEMO,实际上多对多,是分解为两个一对多(即,你的父子关系)来实现的,所以,你一看即明白Good Luck! 而且用@@identity得到了主表的ID,问题是当我提交的时候,判断@@error没有错误=======假如你准备使用存储过程来完成的话,最好是分开两个,一个写 Student, 一个写 Relation应用程序中,写入 Student ,循环调用写 Relation,一个存储过程不好处理, 因为无法同时传递多条数据,用分隔符拼接,反而更麻烦,且某些类型的数据,如 image 是无法拼接的 动态表达式树怎么实现? iis7不能用ajax访问ashx文件,怎样修改配置文件啊? 如何在CS文件里获取AJAX传的值呢? 请教有两个日期textbox 点查找后显示这两个日期中间的数据 contentplaceholder控件问题 关于cookie对象的使用和计算机时间设置的问题 请教高人:asp.net怎么查看客户端的注册表 如何实现定时? 关于程序打包后的安装问题。 !asp.net!菜鸟[疑问2]web开发的前台设计与后台设计到底指的是什么? 如何将论坛中的帖子列表生成静态页面?请高人指点,百分相送,不够再加 关于画流程图的问题
查询关系的时候根据学生ID查询
关系不就变成多对多了,他们间的关系是一对多
那必须得变3张表了
学生 学生家庭信息表 家庭信息表
学生ID 关联 学生家庭信息ID 家庭信息ID(分别一跳单独信息)其实只要2张表就好了
学生ID 关联 家庭信息(学生ID做为外键)
1001 母亲 鳖 大河流水咕噜噜
1002 母亲 蟹 大江流水轰隆隆
学生表:学生ID 姓名 性别 班级
1001 张三 女 sexy01班
1002 李四 女 sexy01班
1003 赵五 人妖 Fk01
在member表中建student表的外键 还可以建立关系来强制业务规则 插入的时候可以把插入操作放在一个事务中先加入学生的信息 得到@@identity(就是该学生在student表中的主键ID)后 再根据这个ID在表member中插入他的家庭成员。 最后判断@@error 如果有错误的话全部回滚 否则就提交事务就可以了。
比如 关系|姓名|工作单位,关系|姓名|工作单位 然后在存储过程中实现split的功能,用逗号分隔出来 再一条一条插入 很麻烦而且你还得确保你的字符串中没有和|,冲突的字符
假如你是在写入学生数据的时候,同时写入其家庭成员数据,那么这两个操作要作为一个事务完成2。
要点是,先写入学生数据,然后返回学生主键,紧接着写入家庭成员数据3。
具体代码你可以参考我的文章如何获取自增长列(标识列)的ID,并写入另一张表(多对多关系插入数据示例)
http://www.cnblogs.com/Jinglecat/archive/2007/07/05/806421.html文中我举的是,多对多关系的DEMO,实际上多对多,是分解为两个一对多(即,你的父子关系)来实现的,所以,你一看即明白
Good Luck!
应用程序中,写入 Student ,循环调用写 Relation,一个存储过程不好处理, 因为无法同时传递多条数据,用分隔符拼接,反而更麻烦,且某些类型的数据,如 image 是无法拼接的