将数据库中的数据查询出来后,要在Grid中新增一列bool形的"check_option",让用户进行点选,我是这么写的
DataSet ds_cx=new DataSet();
SqlConnection conn=new SqlConnection();
conn.ConnectionString = "Server = .; DataBase = temp; User ID = sa; Password = ";
SqlCommand cmd_str=new SqlCommand("SELECT * FROM PL010400",conn); SqlDataAdapter ada_cx=new SqlDataAdapter(cmd_str);
ada_cx.Fill(ds_cx,"kscx");


grd.DataSource=ds_cx.Tables["kscx"]; DataColumn col = ds_cx.Tables["kscx"].Columns.Add("check_option");
col.DataType = typeof(bool);
// col.ColumnName = "check_option";
// col.Caption = "选择"; this.grd.Sum("pl01034");
但是他报错:未处理的“System.ArgumentException”类型的异常出现在 system.data.dll 中。其他信息: 在列包含数据的情况下不能更改其数据类型。
请问该怎么解决啊?谢谢

解决方案 »

  1.   

    可能是由于有记录时,新增的列没有允许为Null造成的,可以这样DataTable workTable = new DataTable("Customers");DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
    workCol.AllowDBNull = false;
    你试试看行不行!
      

  2.   

    还是不行啊,不过确实好像是NULL值的原因,用了你方法以后,报错就是check_option中包含空值
      

  3.   

    你应该还要设置缺省值:
    col.DefaultValue = "false";再试试!