ds.Relations.Add("myrela",表1.Columns["pl

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
C# 如何显示表格

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;
namespace BindDataGridViewAndDataTable{ public partial class Form1 : Form { public Form1() { InitializeComponent(); initData();
} System.Data.DataTable dt = new DataTable(); System.Data.DataSet ds = new DataSet();
/// /// 初始化数据 /// private void initData() { dt.TableName = "Table1" ; ds.Tables.Add(dt); dt.Columns.Add( "ID" , typeof ( string )); dt.Columns.Add( "板块" , typeof ( string )); dt.Columns.Add( "积分" , typeof ( int )); addData(dt, "jinjazz" , "delphi" , 50000 ); addData(dt, "jinjazz" , "Sqlserver" , 10000 ); addData(dt, "jinjazz" , ".net" , 20000 ); addData(dt, "zjcxc" , "Sqlserver" , 900000 ); addData(dt, "zjcxc" , "vb" , 10000 ); addData(dt, "zswang" , "delphi" , 70000 ); addData(dt, "zswang" , ".net" , 30000 ); } private void addData(DataTable dt, string Name, string Catalog, int Salary) { System.Data.DataRow drow = dt.NewRow(); drow[ "ID" ] = Name; drow[ "板块" ] = Catalog; drow[ "积分" ] = Salary; dt.Rows.Add(drow); } private void Form1_Load(object sender, EventArgs e) { // 绑定所有没有重复的ID到comboBox1 this .comboBox1.DataSource = dt.DefaultView.ToTable( true , new string[]{"ID"} ); this .comboBox1.DisplayMember = "ID" ; // 绑定所有板块到comboBox2 this .comboBox2.DataSource = new DataView(dt); this .comboBox2.DisplayMember = "板块" ; // 设置两个联动刷新 this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
this.comboBox2.SelectedIndexChanged += new EventHandler(comboBox2_SelectedIndexChanged);
// 绑定所有数据到dataGridView1 this .dataGridView1.DataSource = dt; // 绑定所有数据到dataGridView2 this .dataGridView2.DataSource = new DataView(dt); // 利用DataRelation求汇总表格 System.Data.DataTable dtGroup1 = dt.DefaultView.ToTable( true , "ID" ); dtGroup1.TableName = "Table2" ; ds.Tables.Add(dtGroup1); System.Data.DataRelation dr = new DataRelation( "relation" , dtGroup1.Columns[ "ID" ], dt.Columns[ "ID" ]); ds.Relations.Add(dr); dtGroup1.Columns.Add( "总积分" ).Expression = "sum(child(relation).积分)" ; dtGroup1.Columns.Add( "板块数" ).Expression = "count(child(relation).板块)" ; this .dataGridView3.DataSource = dtGroup1;
}
void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { DataTable dt = new DataTable(); }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { // 设置combobox2和comboBox1同步 System.Data.DataView dv = this.comboBox2.DataSource as DataView; dv.RowFilter = string.Format(" ID='{0}' ", this.comboBox1.Text); // 设置dataGridView2和comboBox1同步 dv = this.dataGridView2.DataSource as DataView; dv.RowFilter = string.Format(" ID='{0}' ", this.comboBox1.Text);
}
}}
效果如图

上面这条SQL语句的意思是:查询某个表的字段数量。
例如:某表有id,code,name这3个字段,执行上面的语句后,
得出的结果为:3
另外,语句中的object_id( ) 是系统函数,作用是返回对应表名在数据库中的ID

dataset是内存中的虚拟数据库,
这是给dataset中表1的pl_id字段(主键)和表2的id字段(外键)建立关联关系,非级联删除。

不理解主键外键的话,你需要系统学习数据库知识了。 一两句可说不清楚。

  • mapinfo是什么软件?能简单介绍一下么?
    答:ds.Themes.Add(miThemeRanged, 'POPU', 'MyTheme'); //添加一个范围专题图 end; 5. 建立客户定制工具 你还可以定制自己的地图操作工具,下面通过定制一个名为Info的信息按钮工具简述方法步骤: (1)定义客户工具常量 Const CUSTOM_INFO_TOOL = 1 (2)利用Map对象的CreateCustomTool方法定义客户工具,方法为: ...
  • C#中显示结果集的控件问题
    答:for (int i = 0; i < ds.Tables[0].Rows.Count; i++){ comboBox1.Items.Add(ds.Tables[0].Rows[i]["姓名"].ToString());comboBox2.Items.Add(ds.Tables[0].Rows[i]["姓名"].ToString());comboBox3.Items.Add(ds.Tables[0].Rows[i]["姓名"].ToString());listBox1.Items....
  • c# 给datatable增加一列
    答:相应代码为“DataColumn col=dt.Columns.Add("newColumn",typeof(int))”。 1、创建DataSet对象: DataSet ds = new DataSet("DataSetName"); 2、查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTable tbl = ds.Table[0]; foreach(DataColumn col in tbl.Columns) Console.WriteLine(col....
  • c#一个简单问题,关于登陆界面
    答:ds.Tables.Add(dt); string strDtName = dt.TableName; SqlConnection m_Conn; m_Conn = new SqlConnection(strConn); SqlDataAdapter da = new SqlDataAdapter(); SqlCommand cmd = new SqlCommand(SQL, m_Conn); da.SelectCommand = cmd; SqlCommandBuilder scd = new SqlCommandBuilder(da); da.Update(ds...
  • 高分求C#:VS2008中EXCEL导入到SQL SERVER中的代码!!
    答:j < cellCount; j++){ //这里面你也可以加入一些对excel表中每个单元格数据的判断 table.Rows.Add(dataRow);System.IO.File.Delete(filePath);} ds.Tables.Add(table);} return ds;} } 返回一个dateset 然后你可将dateset导入到数据库中了 具体导入ado代码你就根据你实际需求自己写吧 ...
  • C#里的DataSet到底是干什么用的,怎么用?哪位高手帮我讲解讲解,谢谢啦...
    答:3.DataSet中的DataTable可以只有一个,也可以有多个,多个之间可以有关系也可以没有关系相互独立;4.DataTable可以通过dataSet1.Tables.Add加入到DataSet中,但此DataTable必须通过copy的方式加入,如:DataTable dt1=new DataTable();DataSet ds=new DataSet();ds.Tables.Add(dt1);//错误 ds.Tables....
  • 请教:DataTable已属于另一个DataSet
    答:问题原因:ds 和 dss为两个dataset,你要将ds的表添加到dss中,这是不允许的,所有报datatable已经属于dataset的错误信息!解决办法:不能直接用某个dataset的table,那么用这个table的复制品可以吧,所有代码改为: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[0].Copy(), new ToolClass...
  • C#里面的DataSet和DataTable分别对应于JAVA里面的什么对象?
    答:DataSet, DataTable 是以XML形式存放在客户端内存中的库和表, 最大的优势就是可以实现脱机访问数据库, Java中没有对应的功能,
  • .net连接SQL数据库的问题
    答:DataSet ds = new DataSet();ds.Tables.Add(table);return ds;} catch (Exception ex){ throw new Exception("转换出错!", ex);} } /// /// DataReader转换成DataTable /// /// /// <returns></returns> public DataTable DataReaderToDataTable(IDataReader reader){ try { DataTa...
  • c#datagridview 如何不覆盖原有数据添加新数据 并空一行
    答:你是循环的给datasource赋值当然每次都是最后一次的数据,你要用叠加的方式给datagridview添加新的数据,你这个data应该是dataTable类型的,定义一个全局的datatable,每次读到新数据就添加到这个datatable中,并且添加一个空行,DataTable DT = new DataTable();DataRow DR = DT.NewRow();DT.Rows....