在form2里 点击添加按钮,添加数据并且刷新form1中的datagridview

doulou77 2014-08-29 03:07:05
这是我现有代码
//定义一个insert方法,在下面的BUtton调用
public int Insert(string code, string mei, string counter, string record_shsa, string record_koushsa, string record_sacusc, string record_ksnc)
{
OracleConnection conn = new OracleConnection(@"Data Source= O10G;User ID=aws;Password=aws");
conn.Open();
string sql = "insert into T_SHIIRESAKIMASTER values (:code2,:mei,:counter,:record_shsa,:record_koushsa,:record_sacusc,:record_ksnc)";
OracleCommand cmd = new OracleCommand(sql, conn);

OracleParameter parn = new OracleParameter(":code2", code);
cmd.Parameters.Add(parn);

OracleParameter parp = new OracleParameter(":mei", mei);
cmd.Parameters.Add(parp);

OracleParameter part = new OracleParameter(":counter", counter);
cmd.Parameters.Add(part);

OracleParameter parm = new OracleParameter(":record_shsa", record_shsa);
cmd.Parameters.Add(parm);

OracleParameter pare = new OracleParameter(":record_koushsa", record_koushsa);
cmd.Parameters.Add(pare);

OracleParameter parr = new OracleParameter(":record_sacusc", record_sacusc);
cmd.Parameters.Add(parr);

OracleParameter parc = new OracleParameter(":record_ksnc", record_ksnc);
cmd.Parameters.Add(parc);

int result = cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();
return result;
}
添加按钮BUtton代码
private void button1_Click(object sender, EventArgs e)
{

Insert(txtShiiresakiMei2.Text, textSHIIRESAKICODE2.Text, "0", System.Net.Dns.GetHostName(), System.Net.Dns.GetHostName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
// insert into 表 (列1,列2) values ('" + ds.Tables[0].Rows[i][0].ToString() + "','" + ds.Tables[0].Rows[i][1].ToString() + "')

MessageBox.Show(" 顧客名前:'" + textSHIIRESAKICODE2.Text + "' 顧客コート: '" + txtShiiresakiMei2.Text + "'添加する");
Form1 f1 = new Form1();
this.Close();

}
问题 : 这是form2中,datagridview在form1中,点击form1中的添加按钮,弹出form2,在form2中进行真正的添加,在添加完成后,怎样自动刷新form1中的datagridview
求指导·····多谢!!
...全文
579 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
麦克萝卜丝 2016-12-15
  • 打赏
  • 举报
回复
同样的问题,很类似!
z905260859 2016-11-16
  • 打赏
  • 举报
回复
感谢!终于找到我会用的了
於黾 2014-09-02
  • 打赏
  • 举报
回复
我也是先研究的delphi,不过那时还没入门,只会用别人现成的代码改改 而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去 而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了 现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况 正准备改造的时候全部推翻重来呢.
mjp1234airen4385 2014-09-02
  • 打赏
  • 举报
回复
引用 18 楼 zou433 的回复:
[quote=引用 17 楼 mjp1234airen4385 的回复:] 那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不[/quote] 一个是我喜欢说话严谨一些,另外就是确实遇到过好几个喷子。 前段时间有几天回帖勤快了点,有人喷:到处都能遇见你,然后就。。。。。,此处省略若干字。
引用 19 楼 Z65443344 的回复:
不如说,那会还没有C#呢...
确实没有C#,使用delphi起家的。
於黾 2014-09-02
  • 打赏
  • 举报
回复
不如说,那会还没有C#呢...
派大奇 2014-09-02
  • 打赏
  • 举报
回复
引用 17 楼 mjp1234airen4385 的回复:
那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不
mjp1234airen4385 2014-09-02
  • 打赏
  • 举报
回复
那会还没有csdn呢。《============准确的说是我没听说过csdn。
mjp1234airen4385 2014-09-02
  • 打赏
  • 举报
回复
看来lz也是刚学编程。和我当年一样为了这么个问题,纠结了好久啊。那会还没有csdn呢。 楼上的都是解决办法。 如果你在form1中打开了form2,并且使用了ShowDialog()方法的话, 那么在showdialog()后面就可以加入刷新grideview的代码了。 如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。 在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
yuanmashijie 2014-09-02
  • 打赏
  • 举报
回复
这个问题之前刚见人问过,建议先学习一下窗体间传值,再实现这个轻而易举,这里有一个类似的问题http://www.hellocsharp.com/ask/14.aspx
threenewbee 2014-09-02
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/360140208
doulou77 2014-09-02
  • 打赏
  • 举报
回复
结贴:我确实是新手 先谢谢大家了~ 为造福后人,总结一下 我的解决方法如下,可能比较低级,但新手易理解 在form2确认添加按钮下: DialogResult = DialogResult.OK; 在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK) { 检索一遍 } 这样就OK了
安得权 2014-09-02
  • 打赏
  • 举报
回复
http://pan.baidu.com/s/1ntJUZgd 我写了个 例子 你到 百度网盘下载一下把
doulou77 2014-09-01
  • 打赏
  • 举报
回复
引用 11 楼 wind_cloud2011 的回复:
form1中: dataGridView1的 modifiers设为public private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.ShowDialog(this); } ] form2中: private void button1_Click(object sender, EventArgs e) { Form1 f1 = (Form1)this.Owner; f1.textBox1.Text = "aaaa"; f1.dataGridView1.DataSource = ds.Tables[0].DefaultView ; this.Close(); }
我没有绑定数据源datasource,更新按钮是这样写的 private void btnrefresh_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.ShowDialog(); //Console.WriteLine(dataGridView1.CurrentCell.ColumnIndex); //textSHIIRESAKICODE.Text ="" Update(textSHIIRESAKICODE1.Text, txtShiiresakiMei1.Text, System.Net.Dns.GetHostName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } datasource那里该怎样改?谢谢了,我代码写的这么不好,辛苦您了
wind_cloud2011 2014-09-01
  • 打赏
  • 举报
回复
在你更新数据库后: Update(textSHIIRESAKICODE1.Text, txtShiiresakiMei1.Text, System.Net.Dns.GetHostName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); 再通过查询, try { SqlConnection con = new SqlConnection("server =.;database=db_sql;uid=sa;pwd=123"); DataSet ds = new DataSet(); SqlDataAdapter adap = new SqlDataAdapter("select * from student", con); adap.Fill(ds); f1.dataGridView1.DataSource = ds.Tables[0].DefaultView; } catch { }
道玄希言 2014-08-30
  • 打赏
  • 举报
回复
我不知道你是怎样将数据绑定到 datagridview 的。 不知道这样可以不? 在form1中, 定义共有泛型,用于保存从数据库查询到结果的集合: public BindingList<T_SHIIRESAKIMASTER > lst = new BindingList<T_SHIIRESAKIMASTER >(); 绑定到 datagridview datagridview.DataSource = lst ; form2 时, 你只需在insert提交到数据库后,加入: T_SHIIRESAKIMASTER tbrd = new T_SHIIRESAKIMASTER(); tbrd.code2 = code ; ...... form1.lst.Insert(0, tbrd); datagridview 内容会自动刷新了。 public class T_SHIIRESAKIMASTER { private string _code2 ; ..... ..... ..... ///<summary> /// 构造函数 ///</summary> public T_SHIIRESAKIMASTER() { } ///<summary> /// ///</summary> public T_SHIIRESAKIMASTER ( string code2 , ..... ..... ..... ) { this._code2 = code2 ; ..... ..... ..... } #region 公共属性 public string code2 { get { return _code2; } set { _code2= value; } } ..... ..... ..... }
wind_cloud2011 2014-08-30
  • 打赏
  • 举报
回复
form1中: dataGridView1的 modifiers设为public private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.ShowDialog(this); } ] form2中: private void button1_Click(object sender, EventArgs e) { Form1 f1 = (Form1)this.Owner; f1.textBox1.Text = "aaaa"; f1.dataGridView1.DataSource = ds.Tables[0].DefaultView ; this.Close(); }
n284716246 2014-08-30
  • 打赏
  • 举报
回复
引用 8 楼 doulou77 的回复:
[quote=引用 2 楼 bdmh 的回复:]
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加




能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了[/quote]

private void btnAdd_Click(object sender, EventArgs e)
{
Form4 frm = new Form4();
frm.callbackaddrow += AddRow;
frm.Show();
}

private void AddRow(string s1, string s2)
{
//根据新添加的值,在此处添加到DataGridView
}


public Form4()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if(InsertSQL())
{
callbackaddrow("新增行第一列值", "新增行第二列值");
}
}

//数据库操作
private bool InsertSQL()
{
// ****
return true;
}
doulou77 2014-08-29
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了
doulou77 2014-08-29
  • 打赏
  • 举报
回复
引用 1 楼 ima_zhan 的回复:
2关闭了,就在1里刷
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了
doulou77 2014-08-29
  • 打赏
  • 举报
回复
引用 4 楼 andywangguanxi 的回复:
C# Delegate
这样只是在form1中弹出form2,要在子窗体form2中点击添加按钮将数据添加到数据库,并自动关闭,自动刷新form1中的datagridview列表
加载更多回复(5)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧