问题解决就接帖

zhangjingcheng 2007-09-04 04:20:08
现在有winform窗体 sta和stb
在sta用了一个datagridview控件和一个按钮想通过点击按钮打开stb窗体在stb中修改datagridview中的一行数据
我想从sta中得到datagridview被选中的那条记录的id传给stb
然后在stb的textbox显示有修改的数据进行修该不知道怎么做
谁有例子给个研究, 谢谢先
我做的传不了参数:
string starid = this.starmembershow.CurrentRow.Cells[0].ToString();
member_updata ddrs = new member_updata(starid);
ddrs.Show();

...全文
195 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjingcheng 2007-09-17
  • 打赏
  • 举报
回复
private void starmember_Load(object sender, EventArgs e)
{

// TODO: 这行代码将数据加载到表“glxtSQLDataSet10.adminvip”中。您可以根据需要移动或移除它。
this.adminvipTableAdapter.Fill(this.glxtSQLDataSet10.adminvip);
// TODO: 这行代码将数据加载到表“glxtSQLDataSet9.Comku”中。您可以根据需要移动或移除它。
this.comkuTableAdapter.Fill(this.glxtSQLDataSet9.Comku);
// TODO: 这行代码将数据加载到表“glxtSQLDataSet8.StaNews”中。您可以根据需要移动或移除它。
this.staNewsTableAdapter.Fill(this.glxtSQLDataSet8.StaNews);

// TODO: 这行代码将数据加载到表“glxtSQLDataSet7.TbIPerson”中。您可以根据需要移动或移除它。
this.tbIPersonTableAdapter1.Fill(this.glxtSQLDataSet7.TbIPerson);
// TODO: 这行代码将数据加载到表“glxtSQLDataSet6.UpdateNews”中。您可以根据需要移动或移除它。
this.updateNewsTableAdapter.Fill(this.glxtSQLDataSet6.UpdateNews);
// TODO: 这行代码将数据加载到表“glxtSQLDataSet1.TbIPerson”中。您可以根据需要移动或移除它。
this.tbIPersonTableAdapter.Fill(this.glxtSQLDataSet1.TbIPerson);

}

private void 过期会员ToolStripMenuItem_Click(object sender, EventArgs e)
{

}
private void button3_Click_1(object sender, EventArgs e)
{
member_insert rs = new member_insert();
rs.Show();
}

private void button4_Click_1(object sender, EventArgs e)
{
string starid = this.starmembershow.SelectedCells[0].Value.ToString().Trim();
member_updata ddrs = new member_updata(starid);
if (ddrs.ShowDialog() == DialogResult.OK)
{
SqlConnection cn = new SqlConnection("user id=sa;password=123;initial catalog=glxtSQL;Server=KEYJOB;Connect TimeOut=500;");
cn.Open();
SqlCommand mmrs = new SqlCommand("select * from TbIPerson");
SqlDataReader mnrs = mmrs.ExecuteReader();
BindingSource nmrs = new BindingSource();
nmrs.DataSource = mnrs;
this.starmembershow.DataSource = nmrs;
cn.Close();
}

}

我返回重新绑定了但是还是刷新不了啊 !
bbbbbb888888 2007-09-06
  • 打赏
  • 举报
回复
但是有一个问题,上面的方式..如果stb有取消按钮功能的话,不行...可以变更一下
bbbbbb888888 2007-09-06
  • 打赏
  • 举报
回复
传递stb在Load的时候读取Sta的DataSet的当前行datarow.或者stb.Load的时候绑定sta.dataset.datarow[当前行].这样直接就写入dataset了....方便
zhangjingcheng 2007-09-06
  • 打赏
  • 举报
回复
搞定
属性SelectionMode设为FullRowSelect
原来这么简单搞了半天
zhangjingcheng 2007-09-06
  • 打赏
  • 举报
回复
string id = this.starmembershow.SelectedCells[0].Value.ToString().Trim();
SqlConnection conns = new SqlConnection("user id=sa;password=123;initial catalog=glxtSQL;Server=KEYJOB;Connect TimeOut=500;");
conns.Open();
SqlCommand strs = new SqlCommand("delete from TbIPerson where AutoId='" + id + "'", conns);
strs.ExecuteNonQuery();
用datagridview显示的数据
现在想得到这条记录的id
就是不管鼠标点击的那一列正行都要被选中怎么去设置啊
我用了上面的代码要是选的其他的列上面的代码就出错
AutoId='" + id + "'
这里就查询不到了
谢谢先
zhangjingcheng 2007-09-06
  • 打赏
  • 举报
回复
快要疯了
自己顶
zhangjingcheng 2007-09-06
  • 打赏
  • 举报
回复
starmember窗体
private void button4_Click(object sender, EventArgs e)
{
string starid = this.starmembershow.SelectedCells[0].Value.ToString().Trim();
member_updata ddrs = new member_updata(starid);
if (ddrs.ShowDialog() == DialogResult.OK)
this.starmembershow.Refresh();
else
ddrs.Show();
}
member_updata窗体
public member_updata(string starid)
{

InitializeComponent();
string memberid = starid;
}
.............................
strs.ExecuteNonQuery();
MessageBox.Show("信息修改成功!", "信息提示");
this.DialogResult = DialogResult.OK;
this.Hide();

这样可以刷新窗体但是datagridview显示不数据没刷新帮忙给下谢谢
csrwgs 2007-09-04
  • 打赏
  • 举报
回复
如果是固定字段。可以用
public GudingZiduan
{
get
set
}
zhangjingcheng 2007-09-04
  • 打赏
  • 举报
回复
可以哦
现在this.dataGridView1.SelectedCells[0].Value.ToString().Trim()
之后选中那一列就传那一列值
我选择要固定传被选中着行的第一列呢?
就是说固定传一个字段的值
如何写
谢谢
csrwgs 2007-09-04
  • 打赏
  • 举报
回复
如果你想很爽的话
在构造STB的时候就把STA传进来
这样随便你改了/
love_virus 2007-09-04
  • 打赏
  • 举报
回复
重载子窗口的构造函数 把 父窗体的this给传过去
然后把父窗体的datagridview控件设置成public 这样 整个datagridview 在子窗体中都可以 访问了

此思路绝对可行 我使用过
zhangjingcheng 2007-09-04
  • 打赏
  • 举报
回复
真的用错了
郁闷看看先研究研究
liutong606 2007-09-04
  • 打赏
  • 举报
回复
这样获取到的是这一行的第一个单元格的值
然后根据这个值(必须是唯一的) 查询数据库 再绑定控件 修改就OK了

也可以根据 SelectedCells[0] 里面的数字变化传值
skywangjian1234 2007-09-04
  • 打赏
  • 举报
回复
用全局变量,sta,stb分别有一个全局变量id,打开窗体时stb.id=sta.id;
liutong606 2007-09-04
  • 打赏
  • 举报
回复
把datagridview 的 SelectionMode设置成 FullRowSelect
liutong606 2007-09-04
  • 打赏
  • 举报
回复
this.dataGridView1.SelectedCells[0].Value.ToString().Trim()

你是不是用错了
zhangjingcheng 2007-09-04
  • 打赏
  • 举报
回复
string starid = this.starmembershow.CurrentRow.Cells[0].ToString();
member_updata ddrs = new member_updata(starid);
ddrs.Show();
我得到的starid值是
DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=4 }
这个如何查询数据库?
lovefootball 2007-09-04
  • 打赏
  • 举报
回复
多窗体传值
用委托比较方便

http://www.cnblogs.com/Fooo/archive/2007/07/07/809699.html
zhchg6666 2007-09-04
  • 打赏
  • 举报
回复
up
懒牛科技 2007-09-04
  • 打赏
  • 举报
回复
winform 好久不做
加载更多回复(2)

110,534

社区成员

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

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

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