关于datagridview的DataGridViewCheckBoxColumn列的问题,急!

natici 2009-04-26 12:27:10
现有datagridview1,内含DataGridViewCheckBoxColumn列,当在某一行DataGridViewCheckBoxColumn打钩时,希望获取该行和指定列相交的那一个单元格的值,代码该如何写?
...全文
193 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
foreach(GridViewRow row in GridView1.Rows) //遍历所有行
{
if ((row.Cells[10].Controls[0] as CheckBox).Checked) //假定下标为10的列是DataGridViewCheckBoxColumn,判断是否选中
{
Response.Write(row.Cells[0].Text); //如果该行是选中的,则打印这行第一个单元格文本
}
}
qzw4549689 2009-04-26
  • 打赏
  • 举报
回复
来晚了
natici 2009-04-26
  • 打赏
  • 举报
回复
问题解决了,原来是我的列类型设错了。谢谢!
natici 2009-04-26
  • 打赏
  • 举报
回复
int ExeNum = Icmd.ExecuteNonQuery();
这句提示:标准表达式中数据类型不匹配。
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
string Cnum = "";
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[0].Value))
{
Cnum =(row.Cells[1].Value.ToString());
}
}
string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=1.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
OleDbCommand Icmd = new OleDbCommand("update aaa set bbb='c' where Value='"+ Cnum +"'",AconnStr);
AconnStr.Open();
int ExeNum = Icmd.ExecuteNonQuery();
AconnStr.Close();
this.Hide();
natici 2009-04-26
  • 打赏
  • 举报
回复
我的变量就叫Cnum,是提示:当前上下文中不存在名称“Cnum”
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
你的变量叫什么就写什么
OleDbCommand Icmd = new OleDbCommand("update aaa set bbb='c' where Value="+num,AconnStr);
natici 2009-04-26
  • 打赏
  • 举报
回复
当前上下文中不存在名称“Cnum”

有点头晕了。。。
yangqidong 2009-04-26
  • 打赏
  • 举报
回复

OleDbCommand Icmd = new OleDbCommand("update aaa set bbb='c' where Value="+Cnum,AconnStr);
natici 2009-04-26
  • 打赏
  • 举报
回复
现在有另一个问题,我想把获取到的这个值先赋值给变量num,然后修改datagridview1绑定的1.mdb里指定的单元格的值,我的代码如下:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[0].Value))
{
string Cnum =(row.Cells[1].Value.ToString());
}
}
string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=1.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
OleDbCommand Icmd = new OleDbCommand("update aaa set bbb='c' where Value=Cnum",AconnStr);
AconnStr.Open();
int ExeNum = Icmd.ExecuteNonQuery();
AconnStr.Close();
this.Hide();

问题是怎么在sql语句中以变量num作为where的条件?
wuyq11 2009-04-26
  • 打赏
  • 举报
回复
CellValueChanged事件中判断
参考
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
winform的来了
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[10].Value))//假定下标为10的列是复选
{
MessageBox.Show(row.Cells[0].Value.ToString()); //有多少行打勾的,就把这些行的第一列show出来
}
}
natici 2009-04-26
  • 打赏
  • 举报
回复
那要怎么写呀?比较急呢,有人能给一下代码吗?
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
汗。。。
natici 2009-04-26
  • 打赏
  • 举报
回复
我写的是winform。。。
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
using System.Web.UI.WebControls;
natici 2009-04-26
  • 打赏
  • 举报
回复
出现如下提示:

找不到类型或命名空间名称“GridViewRow”(是否缺少 using 指令或程序集引用?)
fuda_1985 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangqidong 的回复:]
foreach(GridViewRow row in GridView1.Rows) //遍历所有行
{
if ((row.Cells[10].Controls[0] as CheckBox).Checked) //假定下标为10的列是DataGridViewCheckBoxColumn,判断是否选中
{
Response.Write(row.Cells[0].Text); //如果该行是选中的,则打印这行第一个单元格文本
}
}
[/Quote]
蓝海D鱼 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangqidong 的回复:]
foreach(GridViewRow row in GridView1.Rows) //遍历所有行
{
if ((row.Cells[10].Controls[0] as CheckBox).Checked) //假定下标为10的列是DataGridViewCheckBoxColumn,判断是否选中
{
Response.Write(row.Cells[0].Text); //如果该行是选中的,则打印这行第一个单元格文本
}
}
[/Quote]up

111,126

社区成员

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

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

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