首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# WINFORM datagridview checkbox有关问题

2013-10-23 
C# WINFORM datagridview checkbox问题逻辑:先通过查询将查询结果显示到datagridview里,datagridview手动

C# WINFORM datagridview checkbox问题
逻辑:先通过查询将查询结果显示到datagridview里,datagridview手动加了一列checkboxcolumn,以便用户可以勾选明细,之后打钩的提交数据库。

出现错误:提示 无效数字。sqlcom.ExecuteNonQuery();这行有错误。
插入逻辑:

myCon.Open();
                                for (int i = 0; i < count; i++)
                                {

                                    string _selectValue = dataGridView1.Rows[i].Cells[0].EditedFormattedValue.ToString();
                                    if (_selectValue == "True")
                                    {
                                        dr = dt1.Rows[i];
                                        insertToSql(dr, myCon);
                                    }                                    
                                }
                                myCon.Close();

insertToSql 具体方法:
 private void insertToSql(DataRow dr, OracleConnection myCon)
        {


            string KC_ShStatus = dr["KC_ShStatus"].ToString();
            string KC_INStatus = dr["KC_INStatus"].ToString();
            string KC_BOStatus = dr["KC_BOStatus"].ToString();
            string KC_POStatus = dr["KC_POStatus"].ToString();
            string KC_SAStatus = dr["KC_SAStatus"].ToString();

            string GoodsID = dr["ISBN"].ToString();
            string GoodsName = dr["书名"].ToString();
            string GoodsCode = dr["订单号"].ToString();

            string Publisher = dr["出版社"].ToString();
            string GoodsDate = dr["出版日期"].ToString();
            string PrName = dr["外商名称"].ToString();

          
            string StoreName = txtStoreName.Text.Trim();
            string GoodsSpec = dr["一级分类号"].ToString();
            string GoodsUnit = dr["币制"].ToString();
            string GoodsPrice = dr["码洋"].ToString();
            string GoodsAPrice = dr["收款RMB"].ToString();
            string stock_id = dr["库存编号"].ToString();
            string GoodsSpec2 = dr["二级分类号"].ToString();
            string RecID = dr["验收号"].ToString();
            string ISRemark = dr["中文译名"].ToString();

            //decimal GoodsSJNum = Convert.ToDecimal(dr["实际数量"].ToString());
           // decimal GoodsNum = Convert.ToDecimal(dr["货物数量"].ToString());


            string GoodsSJNum = dr["实际数量"].ToString();
            string GoodsNum = dr["货物数量"].ToString();
           
        
                string sql = "insert into KC_tb_BorrowGoods(GoodsID,GoodsName,GoodsCode,"
                    + "stock_id,StoreID,StoreName,"
                    +"GoodsSpec,GoodsUnit,GoodsPrice,"
                    +"GoodsAPrice,GoodsSpec2,RecID,ISRemark,GoodsSJNum,"
                    +"GoodsNum,KC_INSTATUS,KC_BOSTATUS,KC_POSTATUS,"
                    +"KC_SASTATUS,KC_SHSTATUS,ISID,PUBLISHER,"+
                    "GOODSDATE,PRNAME)"
                 + "values('" + GoodsID + "','" + CheckString(GoodsName) + "','" + GoodsCode + "','" + stock_id + "','" + StoreIDA + "','" + CheckString(StoreName) + "','" + GoodsSpec + "','" + GoodsUnit + "','" + GoodsPrice + "','" + GoodsAPrice + "','" + GoodsSpec2 + "','" + RecID + "','" + CheckString(ISRemark) + "','" + GoodsSJNum + "','" + GoodsNum + "','" + KC_INStatus + "','YJ','" + KC_POStatus + "','" + KC_SAStatus + "','" + KC_ShStatus + "','" + ISID + "','" + Publisher + "','" + GoodsDate + "','" + PrName + "')";
                OracleCommand sqlcom = new OracleCommand(sql, myCon);
                sqlcom.ExecuteNonQuery();
                Chuku++;

        }
        private string CheckString(string str)
        {
            string returnStr = "";
            if (str.IndexOf("'") != -1) //判断字符串是否含有单引号
            {
                returnStr = str.Replace("'", "''");
                str = returnStr;
            }
            return str;
        }


datagridview checkbox winform c#
[解决办法]
不懂 帮顶一下
[解决办法]
sqlcom.ExecuteNonQuery();这行有错误。
一定是数据库执行报错,在string sql处切断点,看sql语句生成的是什么
[解决办法]
你的插入sql绝对有问题,参数太多了,参数是不是一一对应的,或者符号问题,
打个断点把sql在数据中执行一下
[解决办法]
//禁止 DataGridView 排序
       private void ForbidSortColumn(DataGridView dgv)
        {
            for (int i = 0; i < dgv.Columns.Count; i++)
            {
                dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
        }

[解决办法]
引用:

Quote: 引用:

//禁止 DataGridView 排序
       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);进行刷新,但是另外一个数据源是绑定在我查询之后出的结果集,这个如何刷新呢?


怎么查询就怎么刷新,调用查询的方法

热点排行