datagridview如何将父表和子表合并显示?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
怎样把数据库的表显示到datagridview中

直接用下面代码:
SqlConnection cnn=new SqlConnection();cnn.ConnectionString="Server=192.168.1.2;uid=sa;pwd=123;database=数据库名";cnn.Open();DataSet ds=new DataSet();String sql="Select ....";SqlDataAdapter sda=new SqlDataAdapter(sql,cnn);sda.Fill(ds);dataGridView1.DataSource=ds.Tables[0];上面是最简单的连接方式。当然你如果你多次用到数据库对象,你一开始就应该static一个SqlConnection对象,让他处于打开状态。后面你要做数据处理就是修改SQL语句的事情,完全可以把它作为变量,放在类中使用,DataSet对象可以作为公共变量,当方法执行带SQL参数时他就会跟着改变数据集合,这样你就可以不像上面一样每次都去连接,浪费数据查询时间。

方法1、使用数据库,子窗体保存到库中,父窗体从库中调取相应的数据
方法2、①设置 Frm子窗体.btn保存按钮.DialogResult = DialogResult.OK;
②子窗体保存按钮单击事件下保存姓名性别年龄信息到一个公共变量(或者直接把三个textbox的private属性改为public,不过不建议)
③主窗体“添加按钮”的单击事件下代码
Frm子窗体 frm = new Frm子窗体();
frm .ShowDialog();

if (frm .DialogResult==DialogResult.OK)
{
this.dataGridView1.Rows[0].Cells[0].Value = frm .tb姓名.Text.ToString();
}
其他的用同样的方法写上去就行,如果主窗体需要添加多条信息,那你就写个循环。

不知道LZ描述的是不是这个意思,望批评指正

关键代码
父表
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand(strSQL, myConn);
sda.SelectCommand = cmd;
sda.Fill(ds, "Parents");
子表
SqlDataAdapter sda2 = new SqlDataAdapter();
SqlCommand cmd2 = new SqlCommand(strSQL2, myConn);
sda2.SelectCommand = cmd2;
sda2.Fill(ds, "Sons");
建立关系
System.Data.DataRelation dataRelation;
System.Data.DataColumn dataColumn1;
System.Data.DataColumn dataColumn2;

dataColumn1 = ds.Tables["Parents"].Columns["YBID"];//设定表关系
dataColumn2 = ds.Tables["Sons"].Columns["标准样板ID"];
dataRelation = new System.Data.DataRelation("ParentsSons", dataColumn1, dataColumn2);

  • 如何将datagridview控件中的数据变成dataset?
    答:DataSet 相当于一个临时的数据库~~DataGridView只包含了一个TABLE的数据,你觉得能==么? 追问 那把控件里的数据变成dataset里的datatable怎么做? 追答 Datatable table=DataGridView.datasource as Datatable;Dataset set=new Dataset ();set.tables.add(table); 本回答由提问者推荐 举报| 答案纠错 | 评论 3 1...
  • datagridview显示关联的两个表
    答:你的代码看的不太明白 我的思路是 在GridView1先绑定“序号”为关键字 然后当点击GridView时出发事件 取到“序号”的值, 然后把值带入一个方法找到“相应的三相电压”然后再绑定GridView2 LZ是不是要实现这样的效果?
  • DataGridView 可否自适应表格大小
    答:填充在父容器内就可以:dataGridView.Dock=DockStyle.Fill;
  • datagridview 同时选择多个值并传参
    答:,";} } IDFilter = IDFilter.TrimEnd(new char[] { ',' });string selectStr = "SELECT * FROM table WHERE ID IN (" + IDFilter + ")"; //table 是你数据库的表,用这条SELECT语句,连接数据库,填充到表dt,在把dt绑定到 dgvParent的DataSource dataGridView1.DataSource = dt;
  • C# winform 实现对数据源多列分组可折叠的Datagridview
    答:此外还有另一种思路,可以尽量避免重绘:使用多个DataGridView来”模拟“对应的视觉效果。如你的截图所示,完全可以使用4个DataGridView来”表达“。第一个dgv显示的是符合子记录格式的列头那一行;第二个dgv显示的是隐藏了列头的符合父记录格式的表(自然可以直有一列,如图)。如果全表无父记录被展开,...
  • vb.net datagridview 双击弹出表单
    答:1个偷懒的写法,使用父窗口使用BindSource做为中间数据源绑定 子窗口添加一个带参构造函数 xxform(Bindingsource bs1);并使用DataBindins.add函数添加数据绑定 TextBox1.DataBindings.Add("Text", bs1, "Company_customer.email", true);父窗口双击时 private void dataGridView1_DoubleClick(object sender...
  • VS2010 中关闭子窗体刷新父窗体怎么实现
    答:MessageBox.Show("成功在关闭子窗体时更新了父窗体内容!");} } } Form2构造窗体,设置FormClosing就好了,代码如下:程序代码 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace ...
  • 怎么循环gridview获得其中数据,然后保存到数据库中
    答://把名为:gridview的DataGridView绑定到名为tbl的DataTable中 DataTable tbl = (DataTable)gridview.DataSource;string st;//遍历每一行tbl中的每一行数据 foreach (DataRow row in tbl.Rows)st= row["字段名"].ToString();//具体字段名 原理分析: 其实dataGridView 中的数据源可以看成是一个表...
  • C# 如何调整DataTable的大小?有人说调属性,但是MicroSoft Visual 20...
    答:和DataGridView绑定以后,可以通过调节 dataGridView.Columns[index].Width 的方法来分别调节每一列的宽度。要是排不满的话,你可以选择用最后一列占满剩下的全部空间,或者将所有列均匀分布来占满全部空间。虽然比较麻烦,但是是可行的。希望可以帮到你。Height也是同样的调节方法。
  • 子窗体在父窗体中最大化显示 vb.net
    答:另外再开个datagridview对象,该对象与数据库绑定,中间用数据 填充后面的即可。