在DataSet中建立外键约束
2008-02-22 09:26:49来源:互联网 阅读 ()
程序可以直接拿来使用,运行通过。
----------------------------------------------------
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>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:用.NET创建定时缓存
下一篇:使用ASP.NET加密口令
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash