动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 在DataSet中建立外键约束

作者来源: 
阅读 1383 人次 , 2006-3-29 4:33:00 

程序可以直接拿来使用,运行通过。

----------------------------------------------------
testconstraint.aspx
----------------------------------------------------

<%@ page language="c#" debug="true" %>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.sqlclient" %>

<html>
<head>
<script language="c#" runat="server">
public dataset ds;
void page_load(object sender,eventargs e)
{
  if(!ispostback)
  {
  sqlconnection myconnection = new sqlconnection("server=(local);database=northwind;trusted_connection=yes");
  sqldataadapter mydataadapter1=new sqldataadapter("select * from suppliers",myconnection);
  sqldataadapter mydataadapter2=new sqldataadapter("select * from products",myconnection);

  ds=new dataset();
  mydataadapter1.fill(ds,"suppliers");
  mydataadapter2.fill(ds,"products");

  mydatagrid.datasource=ds.tables["suppliers"].defaultview;
  mydatagrid.databind();
  mydatagrid2.datasource=ds.tables["products"].defaultview;
  mydatagrid2.databind();
  }
}

void mydatagrid_delete(object sender,datagridcommandeventargs e)
{
  string conn="server=(local);database=northwind;trusted_connection=yes";
  string selectcommandtext1="select * from suppliers";
  string selectcommandtext2="select * from products";

sqldataadapter mydataadapter1=new sqldataadapter();
  mydataadapter1.selectcommand=new sqlcommand();
  mydataadapter1.selectcommand.commandtext=selectcommandtext1;
  mydataadapter1.selectcommand.connection=new sqlconnection(conn);

  sqldataadapter mydataadapter2=new sqldataadapter();
  mydataadapter2.selectcommand=new sqlcommand();
  mydataadapter2.selectcommand.commandtext=selectcommandtext2;
  mydataadapter2.selectcommand.connection=new sqlconnection(conn);

  ds=new dataset();
  mydataadapter1.fill(ds,"suppliers");
  mydataadapter2.fill(ds,"products");

  createconstraint();

  int index=(int)e.item.itemindex;
  ds.tables["suppliers"].rows[index].delete();
  ds.tables["suppliers"].acceptchanges();

  mydataadapter1.update(ds,"suppliers");

  mydatagrid.datasource=ds.tables["suppliers"].defaultview;
  mydatagrid.databind();

  mydatagrid2.datasource=ds.tables["products"].defaultview;
  mydatagrid2.databind();
}

void createconstraint()
{
  datacolumn parentcolumn,childcolumn;
  foreignkeyconstraint myforeignkeyconstraint;

  parentcolumn = ds.tables["suppliers"].columns["supplierid"];
  childcolumn = ds.tables["products"].columns["supplierid"];
  myforeignkeyconstraint = new foreignkeyconstraint("supplierforeignkeyconstraint", parentcolumn, childcolumn);

  myforeignkeyconstraint.deleterule = rule.cascade ;
  myforeignkeyconstraint.updaterule = rule.cascade ;
  myforeignkeyconstraint.acceptrejectrule = acceptrejectrule.cascade ;

  ds.tables["products"].constraints.add(myforeignkeyconstraint) ;
  ds.enforceconstraints =true ;
}

</script>
</head>
<body>
<form runat="server">
<asp:datagrid id="mydatagrid" runat="server"
  width="800"
  backcolor="#ccccff"
  bordercolor="black"
  showfooter="false"
  cellpadding=3
  cellspacing="0"
  font-name="verdana"
  font-size="8pt"
  headerstyle-backcolor="#aaaadd"
  ondeletecommand="mydatagrid_delete"
  datakeyfield="supplierid"
  >

  <columns>
<asp:buttoncolumn text="delete employee" commandname="delete"/>
  </columns>

</asp:datagrid>

<hr>
<asp:datagrid id="mydatagrid2" runat="server"
  width="800"
  backcolor="#ccccff"
  bordercolor="black"
  showfooter="false"
  cellpadding=3
  cellspacing="0"
  font-name="verdana"
  font-size="8pt"
  headerstyle-backcolor="#aaaadd"
  />

</form>
</body>
</html>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:使用ASP.NET加密口令
· 下一篇:用.NET创建定时缓存
· 认识.NET的集合
· TemplateColumn
· 如何得到一个汉字和字母组合的字符串的准确的长度(asp.net 版本的)
· ASP.NET 打造互联网未来空间站(1)
· DataGrid巧用实现目录浏览


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077