有时候遇到对多报表进行操作,采用DataSet是个不错的选择。建立一个虚拟表,将所有数据填到里面,有哪个就提取哪个,很方便。
//编辑部分
[AjaxMethod()]
public void Edit(string id1,int id2)
{
Window1.Title = "编辑";
Window1.Show();
Session["id1"] = id1;
Session["id2"] = id2.ToString();
string f3= string.Format("SELECT * FROM Classes INNER JOIN Students ON Classes.class_id = Students.stu_class_id INNER JOIN Course ON Classes.class_id = Course.cou_grade_id INNER JOIN Stscor ON Students.stu_id = Stscor.stc_stu_id AND Course.cou_id
= Stscor.stc_courseid where stc_stu_id='{0}' and stc_courseid={1} ", id1,id2);
SqlDataAdapter da = new SqlDataAdapter(f3, ConnectionString);
DataSet ds = new DataSet();
da.Fill(ds, "jgk");
//"jgk"便是多表的虚拟表,用来暂时存放数据的。存放里四个表的数据。
TextField21.Text = ds.Tables[0].Rows[0]["stc_stu_id"].ToString();
//["stc_stu_id"]为数据库中学生表里的字段,一下的字段以此类推。
TextField22.Text = ds.Tables[0].Rows[0]["stu_name"].ToString();
TextField23.Text = ds.Tables[0].Rows[0]["stu_class_id"].ToString();
//获取数据集中虚拟表的第一行ds.Tables[0].Rows[0],要显示的字段名:"stu_class_id".
TextField24.Text = ds.Tables[0].Rows[0]["stc_courseid"].ToString();
TextField25.Text = ds.Tables[0].Rows[0]["cou_name"].ToString();
TextField26.Text = ds.Tables[0].Rows[0]["stc_score"].ToString();
TextField27.Text = ds.Tables[0].Rows[0]["stc_else4"].ToString();
}
前台界面显示:
<%--编辑页面部分--%>
<ext:Window ID="Window1" runat="server" Collapsible="true" Icon="Application" Title="编辑" Closable="false" Modal="true" AnimateTarget="Add" AutoHeight="true" Width="780px" ShowOnLoad="false">
<Body>
<ext:FormPanel ID="FormPanel1" runat="server" BodyStyle="padding:5px;" ButtonAlign="Right"
Frame="true" LabelAlign="Left" >
<Body>
<ext:Panel ID="Panel1" runat="server" AutoHeight="true" >
<Body>
<ext:ColumnLayout ID="columnlayout1" runat="server">
<ext:LayoutColumn ColumnWidth="0.33">
<ext:Panel runat="server" ID="panel2" AutoHeight="true">
<Body>
<ext:FormLayout ID="FormLayout1" runat="server" LabelWidth="60" >
<ext:Anchor>
<ext:TextField ID="TextField21" runat="server" EnableKeyEvents="true" FieldLabel="学号" AllowBlank="true" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextField22" runat="server" EnableKeyEvents="true" FieldLabel="姓名" AllowBlank="true" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:Panel>
</ext:LayoutColumn>
<ext:LayoutColumn ColumnWidth="0.33">
<ext:Panel runat="server" ID="panel4" AutoHeight="true">
<Body>
<ext:FormLayout ID="FormLayout3" runat="server" LabelWidth="90" >
<ext:Anchor>
<ext:TextField ID="TextField23" runat="server" DataIndex="5" FieldLabel="班级" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextField24" runat="server" DataIndex="5" FieldLabel="课程ID" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextField25" runat="server" FieldLabel="课程名称">
</ext:TextField>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:Panel>
</ext:LayoutColumn>
<ext:LayoutColumn ColumnWidth="0.33">
<ext:Panel runat="server" ID="panel9" AutoHeight="true">
<Body>
<ext:FormLayout ID="FormLayout6" runat="server" LabelWidth="80">
<ext:Anchor>
<ext:TextField ID="TextField26" runat="server" FieldLabel="所得分数">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextField27" runat="server" FieldLabel="考试时间">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:Panel ID="Panel10" runat="server">
<Body>
<ext:TableLayout ID="TableLayout3" runat="server" Columns="4">
<ext:Cell>
<ext:Panel ID="Panel11" runat="server" Width="50"></ext:Panel>
</ext:Cell>
<ext:Cell>
<ext:Button ID="Button2" Width ="100" runat="server" Icon="Disk" Text="提交">
<AjaxEvents>
<Click OnEvent="tijiaobianji">
<EventMask ShowMask="true" Msg="正在搜索..."></EventMask>
</Click>
</AjaxEvents>
</ext:Button>
</ext:Cell>
<ext:Cell>
<ext:Panel ID="Panel13" runat="server" Width="50"></ext:Panel>
</ext:Cell>
<ext:Cell>
<ext:Button ID="Button3" runat="server" Icon="Cancel" Text="取消">
<AjaxEvents>
<Click OnEvent="quxiaobianji">
<EventMask ShowMask="true" Msg="请稍等..."></EventMask>
</Click>
</AjaxEvents>
</ext:Button>
</ext:Cell>
</ext:TableLayout>
</Body>
</ext:Panel>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:Panel>
</ext:LayoutColumn>
</ext:ColumnLayout>
</Body>
</ext:Panel>
</Body>
</ext:FormPanel>
</Body>
</ext:Window>

点击编辑按钮后如图:

分享到:
相关推荐
将这些DataTable添加到DataSet中,可以通过DataSet的Tables属性完成。 3. **定义DataRelation**: 如果DataTable之间存在关联,可以使用DataRelation来描述这些关系。例如,如果有一个父表和一个子表,可以通过...
通过上述分析,我们可以看出自定义`Dataset`类在PyTorch中的灵活性和实用性。它不仅能够处理各种复杂的数据集,还能够轻松集成到PyTorch的训练流程中。掌握如何创建自定义`Dataset`类对于进行更复杂的深度学习项目至...
### Dataset多表操作详解 在数据处理领域,`Dataset`是一种非常重要的数据结构,它能够存储多种不同类型的数据表,并支持这些表之间的关联操作。...希望本篇文章能帮助大家更好地理解和掌握`Dataset`的多表操作技巧。
在JavaScript中,`dataset` 属性提供了访问这些自定义数据属性的接口。要读取这些数据,可以使用如下方式: ```javascript var title = document.getElementById('title'); console.log(title.dataset.category); /...
综上所述,C#中的`DataSet`为开发者提供了强大的数据处理能力,尤其是在单表操作场景下,通过结合`SqlConnection`、`SqlDataAdapter`等组件,可以实现数据的高效读取、修改和持久化,从而极大地提升了应用程序的数据...
内容概要:本文详细介绍了 C# 中 DataSet 和 DataTable 的基本概念、区别及其常见的操作方法。首先,解释了 DataSet 和 DataTable 的不同之处,其中 DataSet 是数据集,可以包含多个 DataTable,而 DataTable 是数据...
在.NET框架中,`DataSet`是一个非常重要的数据容器,它用于存储和操作关系型数据。在多线程环境中,线程安全是一个至关重要的问题,因为它涉及到数据的一致性和完整性。本测试着重关注`DataSet`在多线程环境下的访问...
1. DataTable:DataSet中的每个DataTable代表了数据表,由DataColumn(列定义)和DataRow(行数据)组成。DataColumn定义了表的结构,如字段名、数据类型等,而DataRow则存储具体的数据。 2. DataColumn:定义了...
总的来说,`dataset` 是 HTML5 提供的一个强大工具,它使得在 HTML 元素中存储和管理自定义数据变得更加便捷和规范。然而,考虑到浏览器兼容性,开发者在使用时应采取适当的检测和处理机制,以确保代码能在不同的...
dataset 多表联合查询 dataset 多表联合查询 dataset 多表联合查询 dataset 多表联合查询 dataset 多表联合查询 dataset 多表联合查询 dataset 多表联合查询
总结来说,ASP.NET中绑定DataSet中的多个表是通过创建DataSet对象,为每个表添加DataTable,定义表间关系,然后在数据控件中绑定整个DataSet来实现的。这种方式能够方便地展示和操作具有关联性的多表数据,对于构建...
在C#编程中,`DataSet`是一个非常重要的数据容器,它可以容纳多个`DataTable`,每个`DataTable`又包含多行`DataRow`和多列`DataColumn`的数据。当我们需要处理或展示`DataSet`中的所有数据时,遍历就显得尤为重要。...
本文将详细探讨三种在C#中替换DataSet中DataTable列名的方法。 **方法一:直接通过DataTable.Columns集合操作** DataTable的Columns集合包含了所有列的信息,我们可以直接通过这个集合来修改列名。以下是一个示例...
现在,让我们来讨论一下如何使用DataAdapter对象的InsertCommand、UpdateCommand和DeleteCommand属性来更新DataSet中的记录。 如果我们需要插入一条新的记录,我们可以使用DataAdapter对象的InsertCommand属性。...
在.NET框架中,DataSet是一个非常重要的数据容器,它允许离线存储和操作数据,尤其在处理多表关联查询时显得尤为实用。本压缩包提供的源码着重展示了如何使用C#来实现DataSet的多表查询功能,这对于理解数据库操作...
本篇文章将详细介绍如何使用`DataSet`对象来插入新的记录到数据库表中。 #### 创建数据库连接 首先,你需要建立与数据库的连接。在ASP.NET中,这通常通过创建一个`SqlConnection`对象来完成。连接字符串包含了...
如果XML文件包含的元素和DataSet中的表格不一致,ReadXml可能会抛出异常。 2. 当使用`ReadXml`时,如果XML文件包含关系(如子节点),DataSet会自动识别这些关系并建立内部的表间关系。 3. `WriteXml`方法默认会写入...
而 "DataSet" 在Delphi中通常指的是存储和操作数据库数据的数据结构。 压缩包中的文件列表揭示了项目的基本结构: 1. `uMainForm.dfm`:这是Delphi中主窗体(Main Form)的设计文件,它定义了用户界面的布局和组件...
`DataSet`包含一个或多个`DataTable`,每个`DataTable`则由一系列行和列组成,类似于数据库中的表。`DataSet`还支持数据关系,即父子表之间的关联。`DataSet`不直接连接到数据库,而是通过`DataAdapter`从数据库获取...
或者,你可能从服务器接收XML数据,将其加载到DataSet中,然后在网页上显示这些数据。 为了提高性能和减少内存占用,可以使用DataSet的派生类,如DataTable或。DataTable是DataSet的一部分,可以直接操作单个表的...