困扰了几天的DataGridView问题

wulin88 2008-09-23 02:32:14
有四个查询条件,还有查询和删除按钮,当按不同条件查询在DataGridView中显示结果,双击DataGridView中的某条记录,它将结果带回文本框,点删除按钮,删除该记录,在DataGridView中显示已删除,不如按员工部门查出5条记录,删除一条DataGridView中显示其余4条记录,怎么实现啊
...全文
188 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoulili_0916 2009-01-06
  • 打赏
  • 举报
回复
添加事件:this.dataGridView1.Rows.Add(); //添加一行
删除事件:dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); //删除当前行
修改事件(双击dataGridView的某个单元格,如果单元格里有值,就把值带到下一个窗体进行修改,我是这样理解的,你要在构造方法里写代码,应该会把?):
private void btnModify_Click(object sender, EventArgs e)
{

if (this.dataGridView1.Rows.Count < 1)
{
this.btnModify.Enabled = false;
return;

}
try
{
string OtherTitle = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
string OtherContent = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();

frmOtherInfo info = new frmOtherInfo();
info.strTitle = OtherTitle;
info.strContent = OtherContent;
info.ShowDialog();
try
{
this.dataGridView1.CurrentRow.Cells[0].Value = info.strTitle;
this.dataGridView1.CurrentRow.Cells[1].Value = info.strContent;
}
catch (Exception res)
{
return;
}

}
catch (Exception error)
{
MessageBox.Show("对不起,您目前还没有输入值!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}

}
不知道能不能帮上你的忙,试试吧
hwhone 2009-01-01
  • 打赏
  • 举报
回复
没有保存到数据库,然后再从数据库中提取,当然与原来的一样,若数据不需要保存到数据库,则可用4楼的设置成TAB
wulin88 2008-09-24
  • 打赏
  • 举报
回复
我的修改和新增按钮也是那问题,查询之后修改某条记录后会将全部记录都显示出来,要求是原有几条记录,修改之后还是几条,怎么改呀
wartim 2008-09-24
  • 打赏
  • 举报
回复
table.AcceptChanges();
paulin 2008-09-23
  • 打赏
  • 举报
回复
因为ds.Tables("Company")还是删除前的table
paulin 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wulin88 的回复:]
是关于删除的,双击事件可以实现,我在删除某条记录后,DataGridView会显示还在,其实它以被删除,我是这样写的
Dim str As String = ""
Dim ds As New DataSet()
Dim tab As DataTable

str = "select * from Employee "

ds.Clear()
ds = GetData(str) 这是连接数据库的函数
tab = ds.Tables("Company")

Dim iRow As Integer = DataGridView1.CurrentRow.Index
If MsgBox("你确认要删除此条记录吗?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
tab.Rows(iRow).Delete()


End If
DataGridView1.Refresh()
Me.DataGridView1.DataSource = ds.Tables("Company").DefaultView
[/Quote]
你这样写,当然显示的没有删除
改称

Me.DataGridView1.DataSource = tab

wulin88 2008-09-23
  • 打赏
  • 举报
回复
是关于删除的,双击事件可以实现,我在删除某条记录后,DataGridView会显示还在,其实它以被删除,我是这样写的
Dim str As String = ""
Dim ds As New DataSet()
Dim tab As DataTable

str = "select * from Employee "

ds.Clear()
ds = GetData(str) 这是连接数据库的函数
tab = ds.Tables("Company")

Dim iRow As Integer = DataGridView1.CurrentRow.Index
If MsgBox("你确认要删除此条记录吗?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
tab.Rows(iRow).Delete()



End If
DataGridView1.Refresh()
Me.DataGridView1.DataSource = ds.Tables("Company").DefaultView
错在哪啊
jihuomima 2008-09-23
  • 打赏
  • 举报
回复
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{

this.textBox1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}

paulin 2008-09-23
  • 打赏
  • 举报
回复
楼主的主要困扰在哪里?
1.双击事件中取得该行数据,分别赋值到对应的文本框,如果该行没用对应数据,从数据库中查询
2.删除按钮,将数据库对应数据删除,然后重新查询数据库,将查询结果绑定到datagridView显示

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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