Code Bye

Datagridview绑定异常ArgumentException

 


操作时发现:日期格式、整数格式的字段都会产生异常,确认后还是可以通过,请问这个要怎么避免?

 
删除后台数据源的行,不要直接操作表格控件

10分
而且,目测你所谓的删除并不是真的remove,而是把那一行赋值为空,这是不行的.
已经绑定了数值型的字段,数据是不可以为null的
引用 2 楼 Z65443344 的回复:

而且,目测你所谓的删除并不是真的remove,而是把那一行赋值为空,这是不行的.
已经绑定了数值型的字段,数据是不可以为null的

我本来是有一个保存按钮,删除后点保存的
听你这么一说是不是需要直接修改数据库再绑定?
或者说怎么样修改DataTable然后更新数据库并重新绑定?


5分
绑定数据后不直接修改Datagridview,修改DataTable就可以了。

5分
DataGridView绑定数据删除信息示例
//定义datatier类型的私有字段
  private datatier dt = new datatier();
//删除指定信息事件按钮
 private void btn_delete_Click(object sender, EventArgs e)
        {
            dt.Remove(txt_name_delete.Text);//调用datatier对象的Remove()方法,从数据库中删除数据
            dataGridView1.DataSource = dt.Select();//更新dataGridView1控件中的信息
            Clear();//清空TextBox控件中的文本
        }//codego.net/tags/1/1/
//自定义类删除信息
 class datatier
    {
        private SqlConnection GetConnection()
        {
            //返回连接到数据库的SqlConnection对象
            return new SqlConnection(“server=WRET-MOSY688YVW\MRGLL;database=db_test;Trusted_Connection=true”);
        }
 public void Remove(string Name)
        {
            SqlConnection sc = GetConnection();//调用GetConnections()方法,得到连接对象
            try
            {
                sc.Open();//打开到数据库的连接
                SqlCommand cmd = new SqlCommand(//创建SqlCommand对象
                    “delete from tb_friend where names=@names”, sc);
                cmd.Parameters.Add(“@names”, SqlDbType.VarChar).Value = Name;//向SqlCommand对象添加参数
                cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (sc.State == ConnectionState.Open)//判断是否连接数据库
                {
                    sc.Close();//如果已经连接则关闭连接
                }
            }
        }
/div>
我最后的操作是选择整行删除时不跳过将单元格值设为Null,框选单元格删除时就进行列类型分别处理

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Datagridview绑定异常ArgumentException