手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

在DataSet中建立外键约束

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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

----------------------------------------------------
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>

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!