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;
}
}
[解决办法]
怎么查询就怎么刷新,调用查询的方法