还有补充下我查询数据的语句,我是在查询出结果之后就绑定datatable dt1 的 if (cboxLCondition.Text.Trim() == "一级分类号") { DataSet myds = datacon.getds("select ISID as 货物编号,GoodsID as ISBN,GoodsName as 书名,GoodsCode as 订单号,decode(PUBLISHER,NULL,'null') AS 出版社,decode(GOODSDATE,NULL,'null') AS 出版日期, " + " GoodsSpec as 一级分类号,GoodsUnit as 币制,GoodsNum as 货物数量,GoodsSJNum as 实际数量,decode(HandlePeople,NULL,'null') as 作者,decode(PrName,NULL,'null') as 外商名称," + "GoodsPrice as 码洋,GoodsAPrice as 收款RMB,GoodsSpec2 as 二级分类号,RecID as 验收号,STOCK_ID AS 库存编号," + "decode(ISRe,NULL,'null') as 中文译名,KC_ShStatus,KC_INStatus,KC_BOStatus, KC_POStatus, KC_SAStatus" + " from KC_tb_GoodsInfo WHERE KC_ShStatus = 'N' and KC_BOStatus IN('N','R') and KC_POStatus = 'N' and KC_SAStatus <> 'Y' AND KC_PKSTATUS = 'N' and GoodsSpec like '%" + txtLKWord.Text.Trim() + "%'", "KC_tb_GoodsInfo"); dataGridView1.DataSource = myds.Tables[0]; dt1 = myds.Tables[0]; // this.dataGridView1.DataSource = dt1; }
{
DataSet myds = datacon.getds("select ISID as 货物编号,GoodsID as ISBN,GoodsName as 书名,GoodsCode as 订单号,decode(PUBLISHER,NULL,'null') AS 出版社,decode(GOODSDATE,NULL,'null') AS 出版日期, "
+ " GoodsSpec as 一级分类号,GoodsUnit as 币制,GoodsNum as 货物数量,GoodsSJNum as 实际数量,decode(HandlePeople,NULL,'null') as 作者,decode(PrName,NULL,'null') as 外商名称,"
+ "GoodsPrice as 码洋,GoodsAPrice as 收款RMB,GoodsSpec2 as 二级分类号,RecID as 验收号,STOCK_ID AS 库存编号,"
+ "decode(ISRe,NULL,'null') as 中文译名,KC_ShStatus,KC_INStatus,KC_BOStatus, KC_POStatus, KC_SAStatus"
+ " from KC_tb_GoodsInfo WHERE KC_ShStatus = 'N' and KC_BOStatus IN('N','R') and KC_POStatus = 'N' and KC_SAStatus <> 'Y' AND KC_PKSTATUS = 'N' and GoodsSpec like '%" + txtLKWord.Text.Trim() + "%'", "KC_tb_GoodsInfo");
dataGridView1.DataSource = myds.Tables[0];
dt1 = myds.Tables[0];
// this.dataGridView1.DataSource = dt1;
}
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
一定是数据库执行报错,在string sql处切断点,看sql语句生成的是什么
打个断点把sql在数据中执行一下
问题找到了。原因是我在查询的时候数据源绑定错误
dataGridView1.DataSource = myds.Tables[0];
dt1 = myds.Tables[0];
// this.dataGridView1.DataSource = dt1;
注销掉最后一行就好了。现在有个问题.我查询结果之后,如果点击datagridview列标题排序,然后再点击checkbox选择,那checkbox对应的还是未排序之前的数据。有什么好办法么??
我试过禁用列标题排序,但是好像不起作用。或者可以让checkbox随着排序变化??
求教。。
dataGridView1.DataSource = myds.Tables[0];
dt1 = myds.Tables[0];
// this.dataGridView1.DataSource = dt1;
注销掉最后一行就好了。现在有个问题.我查询结果之后,如果点击datagridview列标题排序,然后再点击checkbox选择,那checkbox对应的还是未排序之前的数据。有什么好办法么??
我试过禁用列标题排序,但是好像不起作用。或者可以让checkbox随着排序变化??
求教。。
private void ForbidSortColumn(DataGridView dgv)
{
for (int i = 0; i < dgv.Columns.Count; i++)
{
dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
}
最后一个小问题了:
我这个winform上有两个datagridview,其中一个写进了
private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?
最后一个小问题了:
我这个winform上有两个datagridview,其中一个写进了
private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?怎么查询就怎么刷新,调用查询的方法
最后一个小问题了:
我这个winform上有两个datagridview,其中一个写进了
private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?怎么查询就怎么刷新,调用查询的方法OK 感谢版主.这问题解决了.又发现新问题了.哈哈
我在获取checkbox勾选的时候,只获得了有多少勾选的,然后for循环用的是i=0,i<我勾选的数量,i++;
这样只能从第一个往下获取,而不是我选择的其中一个checkbox对应的那一行.
求助。。
在循环的时候我的I<我勾选的数量错了,应该是遍历所有DATAGRIDVIEW里,查找所有checkbox的值为true的
感谢版主.
结贴给分.
设置 checkbox列的FalseValue=false TrueValue=true for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];
if ((Boolean)chk.EditedFormattedValue == true)
{ } }