DataSet allDSet = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection myConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=88885136;User ID=Admin;Data Source=天壶贡丸销售记录.mdb");
myConn.Open(); DataTable schemaTable = myConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[] { null, null, null, "TABLE" }); //DataSet myDSet = new DataSet(); foreach (DataRow dr in schemaTable.Rows)
{
日期表.Items.Add(dr["TABLE_NAME"].ToString());
} int x = 日期表.Items.Count - 1; OleDbDataAdapter myDAda = new OleDbDataAdapter("select * from " + 日期表.Items[x].ToString(), myConn);
myConn.Close(); 日期表.Text = 日期表.Items[x].ToString();
myDAda.Fill(allDSet, 日期表.Items[x].ToString()); dataGridView1.DataSource = allDSet.Tables[日期表.Items[x].ToString()];
this.Text = 日期表.Items[x].ToString() + "[销售表单]";
}为什么显示在"dataGridView1"上会是两张表?如何解决?
private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection myConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=88885136;User ID=Admin;Data Source=天壶贡丸销售记录.mdb");
myConn.Open(); DataTable schemaTable = myConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[] { null, null, null, "TABLE" }); //DataSet myDSet = new DataSet(); foreach (DataRow dr in schemaTable.Rows)
{
日期表.Items.Add(dr["TABLE_NAME"].ToString());
} int x = 日期表.Items.Count - 1; OleDbDataAdapter myDAda = new OleDbDataAdapter("select * from " + 日期表.Items[x].ToString(), myConn);
myConn.Close(); 日期表.Text = 日期表.Items[x].ToString();
myDAda.Fill(allDSet, 日期表.Items[x].ToString()); dataGridView1.DataSource = allDSet.Tables[日期表.Items[x].ToString()];
this.Text = 日期表.Items[x].ToString() + "[销售表单]";
}为什么显示在"dataGridView1"上会是两张表?如何解决?
我知道是DataSet myDSet = new DataSet();的问题,可是我想设这个为全局的,好可以更新数据源。
ds=new DataSet();我是小菜鸟! 说的不好清见谅, 希望能够帮到你!
另:日期表.Items[x].ToString()的值是多少?
"select * from " + 日期表.Items[x].ToString()在数据库中查出来的结果是怎样的?
如:
显示结果在控件上的为(仅有两条记录):
姓名|年龄|身高|
张三|21|170
李四|22|170
张三|21|170
李四|22|170而不是我预期的:
姓名|年龄|身高|
张三|21|170
李四|22|170
日期表.Items[x].ToString()的值是多少?
"select * from " + 日期表.Items[x].ToString()在数据库中查出来的结果是怎样的?
"select * from " + 日期表.Items[x].ToString()在数据库中查出来的结果是怎样的?查找"2008年7月4日"表,将表的数据填充到数据集;
myDAda.Fill(allDSet, 日期表.Items[x].ToString());
if (allDSet.Tables[日期表.Items[x].ToString()]!null)
{
allDSet.Tables[日期表.Items[x].Clear();
}
myDAda.Fill(allDSet, 日期表.Items[x].ToString());
dataGridView1.DataSource = allDSet.Tables[日期表.Items[x].ToString()];
this.Text = 日期表.Items[x].ToString() + "[销售表单]";
if (allDSet.Tables.IndexOf(日期表.Items[x].ToString()) != -1)
{ //清除Table 里的记录用
allDSet.Tables[日期表.Items[x].Clear(); }//然后再填充最新的数据 myDAda.Fill(allDSet, 日期表.Items[x].ToString());
dataGridView1.DataSource = allDSet.Tables[日期表.Items[x].ToString()];
this.Text = 日期表.Items[x].ToString() + "[销售表单]";
这句错了。
allDSet.Tables[日期表.Items[x]].Clear();
也错……
myDAda.Fill(allDSet, 日期表.Items[x].ToString());
这次不会重复出现了,也更新成功,可是更新后的数据不会保存到指定的位置。似乎是因为少了“myDAda.Fill(allDSet, 日期表.Items[x].ToString());”
可是照12楼的方法,运行期间,修改成功,重新打开之后,却又变成未修改。如何解决?
DataSet allDSet = new DataSet(); private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection myConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=88885136;User ID=Admin;Data Source=天壶贡丸销售记录.mdb");
myConn.Open(); DataTable schemaTable = myConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); //DataSet myDSet = new DataSet(); foreach (DataRow dr in schemaTable.Rows)
{
日期表.Items.Add(dr["TABLE_NAME"].ToString());
} int x = 日期表.Items.Count - 1; OleDbDataAdapter myDAda = new OleDbDataAdapter("select * from " + 日期表.Items[x].ToString(), myConn); myConn.Close(); 日期表.Text = 日期表.Items[x].ToString(); if (allDSet.Tables[日期表.Items[x].ToString()] == null)
{
myDAda.Fill(allDSet, 日期表.Items[x].ToString()); }
dataGridView1.DataSource = allDSet.Tables[日期表.Items[x].ToString()];
this.Text = 日期表.Items[x].ToString() + "[销售表单]";
}