asp.net2.0实现主从数据表的简单方法
2008-04-24 06:52
686 查看
实现效果:在主表里选中某行,从表里得出该行的详情。
方法1:代码实现。
在页面上放一个GridView,一个DetailView。数据绑定GridView并且要设置主键,然后在SelectedIndexChanged事件写代码:选择发生变化时,DetailView也改变为相应的Detail。
具体代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class MasterDetail2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string SQL = "SELECT * FROM [Orders]";
GridView1.DataSource = Binding(SQL);
GridView1.DataKeyNames = new string[] { "OrderID" };
GridView1.DataBind();
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string OrderID = Convert.ToString(GridView1.SelectedValue);
string SQL = "SELECT * FROM [OrderDetails] WHERE [OrderID]='" OrderID "'";
DetailsView1.DataSource = Binding(SQL);
DetailsView1.DataBind();
}
/**//// <summary>
/// 执行SQL语句返回一个数据表
/// </summary>
/// <param name="SQL">所要执行的SQL语句</param>
/// <returns>DataTable</returns>
protected DataTable Binding(string SQL)
{
SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
DataTable dt=new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL, myConn);
myAdapter.Fill(dt);
return dt;
}
}
方法2:设置控件属性实现
在页面上放一个GridView,一个DetailView,然后每个对应一个数据源。只要在DetailView的数据源的SelectCommand里使用GridView的SelectedValue作为参数,即可实现。
<SelectParameters>
<asp:ControlParameter ControlID="EmployeesGridView" Name="AddressID" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
两种方法都很简单,方法2基本无代码实现,方法1控制更灵活。
方法1:代码实现。
在页面上放一个GridView,一个DetailView。数据绑定GridView并且要设置主键,然后在SelectedIndexChanged事件写代码:选择发生变化时,DetailView也改变为相应的Detail。
具体代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class MasterDetail2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string SQL = "SELECT * FROM [Orders]";
GridView1.DataSource = Binding(SQL);
GridView1.DataKeyNames = new string[] { "OrderID" };
GridView1.DataBind();
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string OrderID = Convert.ToString(GridView1.SelectedValue);
string SQL = "SELECT * FROM [OrderDetails] WHERE [OrderID]='" OrderID "'";
DetailsView1.DataSource = Binding(SQL);
DetailsView1.DataBind();
}
/**//// <summary>
/// 执行SQL语句返回一个数据表
/// </summary>
/// <param name="SQL">所要执行的SQL语句</param>
/// <returns>DataTable</returns>
protected DataTable Binding(string SQL)
{
SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
DataTable dt=new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL, myConn);
myAdapter.Fill(dt);
return dt;
}
}
方法2:设置控件属性实现
在页面上放一个GridView,一个DetailView,然后每个对应一个数据源。只要在DetailView的数据源的SelectCommand里使用GridView的SelectedValue作为参数,即可实现。
<SelectParameters>
<asp:ControlParameter ControlID="EmployeesGridView" Name="AddressID" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
两种方法都很简单,方法2基本无代码实现,方法1控制更灵活。
相关文章推荐
- asp.net2.0实现主从数据表的简单方法
- asp.net2.0实现主从数据表的简单方法
- MYSQL数据库主从复制的简单原理及实现方法
- Yii框架批量插入数据扩展类的简单实现方法
- Vue数据双向绑定原理及简单实现方法
- 在多台服务器上简单实现Redis的数据主从复制
- Code First 更新数据库结构(简单实现方法:会删除原来的数据)
- C#数据绑定(DataBinding)简单实现方法
- 在多台服务器上简单实现Redis的数据主从复制
- 在多台服务器上简单实现Redis的数据主从复制(3)(转载)
- Python字典数据对象拆分的简单实现方法
- 页面上一段时间内通过ajax轮询后台数据的简单实现方法
- DevExpress中XtraGrid主从表数据显示的简单实现
- python中json格式数据输出的简单实现方法
- ASP.NET2.0中Tabs的简单实现 不用Asp.net Ajax ControlToolKit中的Tabs控件实现Tabs效果的简单实现方法:
- EXCEL数据上传到SQL SERVER中的简单实现方法
- Python简单实现TCP包发送十六进制数据的方法
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 在多台服务器上简单实现Redis的数据主从复制
- python中json格式数据输出的简单实现方法