//定义一个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
求指导·····多谢!!
25 个解决方案
#1
2关闭了,就在1里刷
#2
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加
#3
定义个委托,在form1里实现,form2里调用委托刷新form1数据
#4
C# Delegate
#5
思路不对
怎么在form2里又show form1呢
直接在form1里
form2 fm2=new form2();
fm2.ShowDialog();//form1不关闭,也不用重新show
刷新dgv
怎么在form2里又show form1呢
直接在form1里
form2 fm2=new form2();
fm2.ShowDialog();//form1不关闭,也不用重新show
刷新dgv
#6
这样只是在form1中弹出form2,要在子窗体form2中点击添加按钮将数据添加到数据库,并自动关闭,自动刷新form1中的datagridview列表
#7
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到, 多谢了
#8
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了
#9
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;
}
#10
我不知道你是怎样将数据绑定到 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;
}
}
.....
.....
.....
}
不知道这样可以不?
在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;
}
}
.....
.....
.....
}
#11
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();
}
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();
}
#12
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那里该怎样改?谢谢了,我代码写的这么不好,辛苦您了
#13
在你更新数据库后: 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
{
}
再通过查询,
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
{
}
#14
http://bbs.csdn.net/topics/360140208
#16
看来lz也是刚学编程。和我当年一样为了这么个问题,纠结了好久啊。那会还没有csdn呢。
楼上的都是解决办法。
如果你在form1中打开了form2,并且使用了ShowDialog()方法的话,
那么在showdialog()后面就可以加入刷新grideview的代码了。
如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。
在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
楼上的都是解决办法。
如果你在form1中打开了form2,并且使用了ShowDialog()方法的话,
那么在showdialog()后面就可以加入刷新grideview的代码了。
如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。
在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
#17
那会还没有csdn呢。《============准确的说是我没听说过csdn。
#18
那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不
#19
不如说,那会还没有C#呢...
#20
那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不
一个是我喜欢说话严谨一些,另外就是确实遇到过好几个喷子。
前段时间有几天回帖勤快了点,有人喷:到处都能遇见你,然后就。。。。。,此处省略若干字。
不如说,那会还没有C#呢...
确实没有C#,使用delphi起家的。
#21
我也是先研究的delphi,不过那时还没入门,只会用别人现成的代码改改
而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去
而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了
现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况
正准备改造的时候全部推翻重来呢.
而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去
而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了
现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况
正准备改造的时候全部推翻重来呢.
#22
http://pan.baidu.com/s/1ntJUZgd
我写了个 例子 你到 百度网盘下载一下把
我写了个 例子 你到 百度网盘下载一下把
#23
结贴:我确实是新手
先谢谢大家了~ 为造福后人,总结一下
我的解决方法如下,可能比较低级,但新手易理解
在form2确认添加按钮下: DialogResult = DialogResult.OK;
在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK)
{
检索一遍
}
这样就OK了
先谢谢大家了~ 为造福后人,总结一下
我的解决方法如下,可能比较低级,但新手易理解
在form2确认添加按钮下: DialogResult = DialogResult.OK;
在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK)
{
检索一遍
}
这样就OK了
#24
感谢!终于找到我会用的了
#25
同样的问题,很类似!
#1
2关闭了,就在1里刷
#2
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加
#3
定义个委托,在form1里实现,form2里调用委托刷新form1数据
#4
C# Delegate
#5
思路不对
怎么在form2里又show form1呢
直接在form1里
form2 fm2=new form2();
fm2.ShowDialog();//form1不关闭,也不用重新show
刷新dgv
怎么在form2里又show form1呢
直接在form1里
form2 fm2=new form2();
fm2.ShowDialog();//form1不关闭,也不用重新show
刷新dgv
#6
C# Delegate
这样只是在form1中弹出form2,要在子窗体form2中点击添加按钮将数据添加到数据库,并自动关闭,自动刷新form1中的datagridview列表
#7
2关闭了,就在1里刷
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到, 多谢了
#8
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了
#9
f1公布 一个public接口,可以接受数据,比如数组,你组织好,调用一下,f1里面接收到然后添加
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了
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;
}
#10
我不知道你是怎样将数据绑定到 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;
}
}
.....
.....
.....
}
不知道这样可以不?
在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;
}
}
.....
.....
.....
}
#11
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();
}
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();
}
#12
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那里该怎样改?谢谢了,我代码写的这么不好,辛苦您了
#13
在你更新数据库后: 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
{
}
再通过查询,
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
{
}
#14
http://bbs.csdn.net/topics/360140208
#15
这个问题之前刚见人问过,建议先学习一下窗体间传值,再实现这个轻而易举,这里有一个类似的问题
http://www.hellocsharp.com/ask/14.aspx
#16
看来lz也是刚学编程。和我当年一样为了这么个问题,纠结了好久啊。那会还没有csdn呢。
楼上的都是解决办法。
如果你在form1中打开了form2,并且使用了ShowDialog()方法的话,
那么在showdialog()后面就可以加入刷新grideview的代码了。
如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。
在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
楼上的都是解决办法。
如果你在form1中打开了form2,并且使用了ShowDialog()方法的话,
那么在showdialog()后面就可以加入刷新grideview的代码了。
如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。
在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
#17
那会还没有csdn呢。《============准确的说是我没听说过csdn。
#18
那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不
#19
不如说,那会还没有C#呢...
#20
那会还没有csdn呢。《============准确的说是我没听说过csdn。
呵呵 免得 被喷是不
一个是我喜欢说话严谨一些,另外就是确实遇到过好几个喷子。
前段时间有几天回帖勤快了点,有人喷:到处都能遇见你,然后就。。。。。,此处省略若干字。
不如说,那会还没有C#呢...
确实没有C#,使用delphi起家的。
#21
我也是先研究的delphi,不过那时还没入门,只会用别人现成的代码改改
而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去
而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了
现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况
正准备改造的时候全部推翻重来呢.
而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去
而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了
现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况
正准备改造的时候全部推翻重来呢.
#22
http://pan.baidu.com/s/1ntJUZgd
我写了个 例子 你到 百度网盘下载一下把
我写了个 例子 你到 百度网盘下载一下把
#23
结贴:我确实是新手
先谢谢大家了~ 为造福后人,总结一下
我的解决方法如下,可能比较低级,但新手易理解
在form2确认添加按钮下: DialogResult = DialogResult.OK;
在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK)
{
检索一遍
}
这样就OK了
先谢谢大家了~ 为造福后人,总结一下
我的解决方法如下,可能比较低级,但新手易理解
在form2确认添加按钮下: DialogResult = DialogResult.OK;
在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK)
{
检索一遍
}
这样就OK了
#24
感谢!终于找到我会用的了
#25
同样的问题,很类似!