我用两个froms(form1,form2)创建了一个programma.Form1有datagridview,而Form2我用它来将数据传递给数据库(我在datagridview中看到它们)。我想当我在form2中按下保存按钮时同时在form1中看到datagridview中的值而没有刷新butoon(就像现在一样)。
以下代码是保存按钮:
string cdata = "Server=127.0.0.1;Database=liveriservis;Port=3306;Uid=root;Pwd=axmn1336;";
MySqlConnection con = new MySqlConnection(cdata);
Querypelatis = "insert into liveriservis.pelatis(Όνομα,Επώνυμο,Κινητό,Σταθερό,date) values('" + this.name.Text + "','" + this.eponimo.Text + "','" + this.kinito.Text + "','" + this.stathero.Text + "','" + this.dateTimePicker2.Text + "');";
Queryteliko = "insert into liveriservis.teliko(Date,Όνομα,Επώνυμο,Σταθερό,Κινητό,ΠρόβλημαPc,ΠρόβλημαPc1,ΜοντέλοLaptop,ΠρόβλημαLaptop,ΠρόβλημαLaptop1,ΕξαρτήματαLaptop,ΜοντέλοΚινητό,ΠρόβλημαΚινητό,ΠρόβλημαΚινητό1,Αρίθμηση,Τιμή)values ('" + this.dateTimePicker2.Text + "','" + this.name.Text + "','" + this.eponimo.Text + "','" + this.stathero.Text + "','" + this.kinito.Text + "','" + this.problimapc.Text + "','" + strpc + "','" + this.modelolaptop.Text + "','" + this.problimalaptop.Text + "','" + strlaptop + "','" + strlaptop1 + "','" + modelo + "','" + this.problimakinito.Text + "','" + strkinito + "','" + this.arithisi.Text + "','" + this.timi.Text + "') ;";
Queryolokliromeno = "insert into liveriservis.olokliromeno(Date,Όνομα,Επώνυμο,Σταθερό,Κινητό,ΠρόβλημαPc,ΠρόβλημαPc1,ΜοντέλοLaptop,ΠρόβλημαLaptop,ΠρόβλημαLaptop1,ΕξαρτήματαLaptop,ΜοντέλοΚινητό,ΠρόβλημαΚινητό,ΠρόβλημαΚινητό1,Αρίθμηση,Τιμή)values ('" + this.dateTimePicker2.Text + "','" + this.name.Text + "','" + this.eponimo.Text + "','" + this.stathero.Text + "','" + this.kinito.Text + "','" + this.problimapc.Text + "','" + strpc + "','" + this.modelolaptop.Text + "','" + this.problimalaptop.Text + "','" + strlaptop + "','" + strlaptop1 + "','" + modelo + "','" + this.problimakinito.Text + "','" + strkinito + "','" + this.arithisi.Text + "','" + this.timi.Text + "') ;";
MySqlCommand cmpelatis = new MySqlCommand(Querypelatis, con);
MySqlCommand cmteliko = new MySqlCommand(Queryteliko,con);
MySqlCommand cmolokliromeno = new MySqlCommand(Queryolokliromeno, con);
MySqlDataReader myReader;
try
{
con.Open();
myReader = cmpelatis.ExecuteReader();
con.Close();
con.Open();
myReader = cmteliko.ExecuteReader();
con.Close();
con.Open();
myReader = cmolokliromeno.ExecuteReader();
DialogResult dialog= MessageBox.Show("Saved","Saved",MessageBoxButtons.OK);
if (dialog == DialogResult.OK) { this.Close(); }
//else if (dialog == DialogResult.No) { e.Cancel = true; }
while (myReader.Read())
{
// Application.Exit();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
// Application.Exit();
}
}
以下代码是刷新按钮:
string cdata = "Server=127.0.0.1;Database=liveriservis;Port=3306;Uid=root;Pwd=axmn1336;";
condata = new MySqlConnection(cdata);
cmgrid = new MySqlCommand("select * from liveriservis.teliko", condata);
sda = new MySqlDataAdapter();
sda.SelectCommand = cmgrid;
dset = new DataTable();
sda.Fill(dset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dset;
dataGridView1.DataSource = bSource;
sda.Update(dset);
答案 0 :(得分:0)
我不知道我是否理解您的问题,但我们假设如果您点击保存按钮,您在表单2中输入的数据将显示在Form1的datagridview中。
这是表单1中的代码,它将在datagridview中显示数据吗?
string cdata = "Server=127.0.0.1;Database=liveriservis;Port=3306;Uid=root;Pwd=axmn1336;";
condata = new MySqlConnection(cdata);
cmgrid = new MySqlCommand("select * from liveriservis.teliko", condata);
sda = new MySqlDataAdapter();
sda.SelectCommand = cmgrid;
dset = new DataTable();
sda.Fill(dset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dset;
dataGridView1.DataSource = bSource;
sda.Update(dset);
所以试试这个。
在你的Form1中 复制此内容并粘贴
public void DataGridRefresher()
{
condata = new MySqlConnection(cdata);
cmgrid = new MySqlCommand("select * from liveriservis.teliko", condata);
sda = new MySqlDataAdapter();
sda.SelectCommand = cmgrid;
dset = new DataTable();
sda.Fill(dset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dset;
dataGridView1.DataSource = bSource;
sda.Update(dset);
}
然后把这个 public System.Windows.Forms.DataGridView GridOgrenci; //此代码将允许Form 1将datagridview共享给其他表单。 在你之后:
公共部分课程表格1:表格
并在您的表格2中 把这段代码放在你的Form_load
中frm = Application.OpenForms [“Form1”]为Form1; //这将允许您在form1中使用datagridview属性
再次
之后:
公共部分课程表格2:表格
把
声明,以便您可以在表单2中使用datagridview
我的表格1
Form1 frm = new Form1
然后
在此代码之后:
DialogResult对话框= MessageBox.Show(“已保存”,“已保存”,MessageBoxButtons.OK);
<强>把强>
frm.DataGridRefresher(); //此代码将刷新datagridview中的数据。
如果我的解释不太好,请回复一下是否有用。我只是在代码中学习而不是在他们的名字中学习,对不起我的英语语法也不是很好。答案 1 :(得分:0)
这很简单,前提是您在Form1和Form2之间有连接(即父子关系)。
这样做的一种方法(经常被认定,但我认为它是最“性感”的方式,并经过多年的测试)如下:
表2 - VB.NET:
Public ParentFrm as Form1
C#:
public Form1 ParentFrm;
表单1 - 在其运行的实例中 - VB.NET:
Dim NewInstanceOfForm2 as New Form2
NewInstanceOfForm2.ParentFrm = Me ' this is to ensure you can talk back to correct instance of parent form
C#:
Form2 NewInstanceOfForm2 = new Form2();
NewInstanceOfForm2.ParentFrm = this;
由于我们在Form2中设置了ParentFrm,你可以通过这种方式回传和调用Form1中的更新函数 - VB.NET:
ParentFrm.UpdateForm1FromDatabasePublicFunction()
C#:
ParentFrm.UpdateForm1FromDatabasePublicFunction()