解决方案 »

  1.   

    还有补充下我查询数据的语句,我是在查询出结果之后就绑定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;
                        }
      

  2.   

    看你的sql 的值,数据是不是都是对的,数据类型是不是对的
      
    *****************************************************************************
    签名档: http://feiyun0112.cnblogs.com/
      

  3.   

    sqlcom.ExecuteNonQuery();这行有错误。
    一定是数据库执行报错,在string sql处切断点,看sql语句生成的是什么
      

  4.   

    你的插入sql绝对有问题,参数太多了,参数是不是一一对应的,或者符号问题,
    打个断点把sql在数据中执行一下
      

  5.   


    问题找到了。原因是我在查询的时候数据源绑定错误
     dataGridView1.DataSource = myds.Tables[0];
                            dt1 = myds.Tables[0];
                           // this.dataGridView1.DataSource = dt1;
    注销掉最后一行就好了。现在有个问题.我查询结果之后,如果点击datagridview列标题排序,然后再点击checkbox选择,那checkbox对应的还是未排序之前的数据。有什么好办法么??
    我试过禁用列标题排序,但是好像不起作用。或者可以让checkbox随着排序变化??
    求教。。
      

  6.   

    问题找到了。原因是我在查询的时候数据源绑定错误
     dataGridView1.DataSource = myds.Tables[0];
                            dt1 = myds.Tables[0];
                           // this.dataGridView1.DataSource = dt1;
    注销掉最后一行就好了。现在有个问题.我查询结果之后,如果点击datagridview列标题排序,然后再点击checkbox选择,那checkbox对应的还是未排序之前的数据。有什么好办法么??
    我试过禁用列标题排序,但是好像不起作用。或者可以让checkbox随着排序变化??
    求教。。 
      

  7.   

    //禁止 DataGridView 排序
           private void ForbidSortColumn(DataGridView dgv)
            {
                for (int i = 0; i < dgv.Columns.Count; i++)
                {
                    dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
                }
            }
      

  8.   

    谢谢.这个方法用上了.
    最后一个小问题了:
    我这个winform上有两个datagridview,其中一个写进了 
    private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?
      

  9.   

    谢谢.这个方法用上了.
    最后一个小问题了:
    我这个winform上有两个datagridview,其中一个写进了 
    private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?怎么查询就怎么刷新,调用查询的方法
      

  10.   

    谢谢.这个方法用上了.
    最后一个小问题了:
    我这个winform上有两个datagridview,其中一个写进了 
    private void frmStoreYujie_Load(object sender, EventArgs e)方法里,在我提交数据库的时候可以用frmStoreYujie_Load(sender, e);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?怎么查询就怎么刷新,调用查询的方法OK 感谢版主.这问题解决了.又发现新问题了.哈哈
    我在获取checkbox勾选的时候,只获得了有多少勾选的,然后for循环用的是i=0,i<我勾选的数量,i++;
    这样只能从第一个往下获取,而不是我选择的其中一个checkbox对应的那一行.
    求助。。
      

  11.   

    OK! 问题都解决了. 
    在循环的时候我的I<我勾选的数量错了,应该是遍历所有DATAGRIDVIEW里,查找所有checkbox的值为true的
    感谢版主.
    结贴给分.
      

  12.   


     设置 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)
                    {                }            }