首先呢 我有3个Form Form1为主页面 Form2 3 都是panel里面的2个Form
Form1里面有2个Button分别打开Form2 3
Form2 3里面分别都有1个datagridview
通过OLEDB打开一个Access文件里面的2个不同的表(表1 表2) OleDbConnection coon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXXOOO.mdb");
datagridview不直接绑定数据源 通过Oledb来打开。。(如果这个问题解决不了的话 我会试着绑定数据源的)
接着 我需要的功能是 通过Button1打开Form2 显示出表1的内容 我在datagridview里面输入数据后 不保存入
表里 我想在打开Form3时 点击Button1打开回Form2 那么之前输入的数据会依然显示在Form2的表里
问题就是上面的 重复通过Button打开Form2 和Form3 如果不将数据保存入表中 那么数据就不能保存在打开的
datagridview里面国际惯例= = 满分送上~~~~
Form1里面有2个Button分别打开Form2 3
Form2 3里面分别都有1个datagridview
通过OLEDB打开一个Access文件里面的2个不同的表(表1 表2) OleDbConnection coon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXXOOO.mdb");
datagridview不直接绑定数据源 通过Oledb来打开。。(如果这个问题解决不了的话 我会试着绑定数据源的)
接着 我需要的功能是 通过Button1打开Form2 显示出表1的内容 我在datagridview里面输入数据后 不保存入
表里 我想在打开Form3时 点击Button1打开回Form2 那么之前输入的数据会依然显示在Form2的表里
问题就是上面的 重复通过Button打开Form2 和Form3 如果不将数据保存入表中 那么数据就不能保存在打开的
datagridview里面国际惯例= = 满分送上~~~~
解决方案 »
- 这样会不会开很多子线程啊?
- c#怎样得到本地outlook的邮件地址和密码
- 二进制数据流存放在byte数组中,我想提取出前4个比特代表的数字,该如何处理呢?
- 怎么在visual studio 2005中编写一个控制台程序注册DLL
- XmlSerializer序列化时指定字符集属性
- 如何把EXCEL表格的数据读到LISTVIEW或DATASET中并显示出来呢??
- installshield 10.5 中的问题?????
- .NET2005连不上SQL2005
- vs2010安装失败,求大神帮忙解决
- c#(正则表达式)小写金额转成大写金额
- CS文件中如何给在GridView中加上一列复选框?
- VS里边比较两个文档的工具?
1、将你的数据源设置成系统全局的变量(可能是dataset),每次在新打开的窗体关闭的时候将值赋给全部变量,以后每次打开的时候再重新赋值
2、将新窗口中的数据源在关闭的时候保存到本地,可直接调用dataset.writexml方法,下次再重新read进来
3、以上两种办法都不如你直接写进表里,既然要保存数据,直接写进表里比你再多一些别的操作更加简单。
我说的功能就好像是office里面的几个软件一样 不保存的话 也可以显示给客户看。。写进表里的话 下次打开这个表 那么不需要的数据就会显示出来 这样好像不怎么好。
回复li365941471大大监控类么。。我去找找。。
using System;
using System.Data;
class Store
{
private static DataTable _dt; public static DataTable DT
{
set { _dt = value; }
get { return _dt; }
} }绑定dataGridView 的时候if (Store.DT != null)
{
dataGridView1.DataSource = Store.DT;
}
else
{
using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=root;database=test"))
{
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from [DataGridViewDemoTable]", con);
DataSet ds = new DataSet();
da.Fill(ds, "DataGridViewDemoTable");
if (ds.Tables.Contains("DataGridViewDemoTable"))
{
dataGridView1.DataSource = ds.Tables["DataGridViewDemoTable"];
}
}
catch (DataException de)
{ }
}
}窗体关闭的时候Store.DT = dataGridView1.DataSource as DataTable;
输入数据后打开第二个Form的时候就显示出dataGridView1.DataSource = ds.Tables["DataGridViewDemoTable"];操作无效,原因是它导致对 SetCurrentCellAddressCore 函数的可重入调用。还是说我输错了事件?
在这里灰常感谢2位= = 首先呢 Sandy945大大的代码功不可没= = 加上之前的指导 鞠躬~接着呢 xiao_jun_0820大大的指导更素指点了迷灯~~~ 再鞠躬。。同时和Sandy945大大说 Store.DT = dataGridView1.DataSource as DataTable;
这个只要放在Load下面就可以了 这样切换Form的时候 就可以把之前存在当地内存的数据再现出来。再和 xiao_jun_0820大大 说 其实dataset可以定义在类中的。3鞠躬 谢谢2位= = 结贴~!