ForeignKeyConstraint 外键约束的使用及作用的学习[转]
2024-10-20 17:25:33
da.SelectCommand.CommandText="select au_id,au_fname,au_lname from authors";
da.Fill(ds,"Author");
da.SelectCommand.CommandText="select au_id,title_id from titleauthor";
da.Fill(ds,"TitleAuthor");
da.SelectCommand.CommandText="select title_id,title from titles";
da.Fill(ds,"Titles");
//
ds.Tables["Titles"].Columns["title_id"].Unique=true;
ds.Tables["Titles"].Columns["title_id"].AllowDBNull=false;
ds.Tables["Titles"].PrimaryKey=new DataColumn[]{ds.Tables["Titles"].Columns["title_id"]};
//
ds.Tables["Author"].Columns["au_id"].Unique=true;
ds.Tables["Author"].Columns["au_id"].AllowDBNull=false;
ds.Tables["Author"].PrimaryKey=new DataColumn[]{ds.Tables["Author"].Columns["au_id"]};
//
ds.Tables["TitleAuthor"].PrimaryKey=new DataColumn[]{ds.Tables["TitleAuthor"].Columns["au_id"],
ds.Tables["TitleAuthor"].Columns["title_id"]};
//定义约束
ForeignKeyConstraint fk1=new ForeignKeyConstraint("authorstitleauthor",ds.Tables["Author"].Columns["au_id"],
ds.Tables["TitleAuthor"].Columns["au_id"]);
ds.Tables["TitleAuthor"].Constraints.Add(fk1);
ForeignKeyConstraint fk2=new ForeignKeyConstraint(
"titlestitleauthor",ds.Tables["Titles"].Columns["title_id"],
ds.Tables["TitleAuthor"].Columns["title_id"]);
ds.Tables["TitleAuthor"].Constraints.Add(fk2);
this.dataGrid1.DataSource=ds;
this.dataGrid1.DataMember="TitleAuthor";
这样设定外键之后,在DataGrid上编辑TitleAuthor中的记录时如果编辑的记录不在Title和Author中时将后无法更新和新增.
最新文章
- 学习django之构建Web是Meta嵌套类的几处使用
- 东大OJ-最大子序列问题的变形
- WinForm------Reflector反编译工具下载
- 再谈对协变和逆变的理解(Updated)
- leetcode 83
- JVM中java类的加载时机(转载:http://blog.csdn.net/chenleixing/article/details/47099725)
- datediff(),dateadd(),datepart().datename()时间处理函数
- [Python]小笔记-queue
- 简单的http代理服务器
- iOS开发UITableView基本使用方法总结
- ES6中的迭代器(Iterator)和生成器(Generator)
- 简述C/C++调用lua中实现的自定义函数
- [收藏] Java源码阅读的真实体会
- Mysql之视图的操作
- hadoop的企业优化
- git心得
- Android 學習之旅!(1)
- QLabel-标签控件的应用
- Python字符串和编码
- Spring 注解 hibernate 实体方法 <;property name=";packagesToScan"; value=";com.sise.domain";/>;
热门文章
- A Practical Introduction to Blockchain with Python
- HTML——使用表格进行页面布局
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
- lucene 5的测试程序——API变动太大
- skynet源码阅读<;3>;--网关分析
- 3.9-3.10 分布式协作服务框架Zookeeper
- KDotAlert
- Android 实用技巧 --- 命令godir (转载)
- React 从入门到进阶之路(八)
- C++开发工程师面试题库 50~100道