我用dataGrid绑定dataset显示数据,我想在dataGrid中绑定一个checkbox.如果新建一个dataTable建立Columns,然后添rows可以实现。但是如果我把建立完列后把dataset绑定上去,操作就无效了,不能显示checkbox,代码如下:MySqlConnection myConn=null;
try
{
string CONNECT_DB_STR=String.Format("server={0};user id={1}; password={2}; database={3};CharSet=gb2312; pooling=false","61.178.85.31","west100","windstorm","jje" );
myConn = new MySqlConnection(CONNECT_DB_STR);
myConn.Open();
}
catch(Exception ex)
{
Console.WriteLine("error in connect --------->" + ex.StackTrace.ToString());
Console.WriteLine("error message------------>" + ex.Message);
if(myConn!=null) myConn.Close(); }
string strSql = "select * from phs_sms limit 10";
MySqlCommand cmd = new MySqlCommand(strSql);
cmd.Connection = myConn;
cmd.CommandType = CommandType.Text;
//创建数据集
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
dt.Columns.Add("1");
dt.Columns.Add("2",typeof(bool));
dt.Columns.Add("3");
dt = ds.Tables[0];
dataGrid1.DataSource= dt;
myConn.Close();
try
{
string CONNECT_DB_STR=String.Format("server={0};user id={1}; password={2}; database={3};CharSet=gb2312; pooling=false","61.178.85.31","west100","windstorm","jje" );
myConn = new MySqlConnection(CONNECT_DB_STR);
myConn.Open();
}
catch(Exception ex)
{
Console.WriteLine("error in connect --------->" + ex.StackTrace.ToString());
Console.WriteLine("error message------------>" + ex.Message);
if(myConn!=null) myConn.Close(); }
string strSql = "select * from phs_sms limit 10";
MySqlCommand cmd = new MySqlCommand(strSql);
cmd.Connection = myConn;
cmd.CommandType = CommandType.Text;
//创建数据集
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
dt.Columns.Add("1");
dt.Columns.Add("2",typeof(bool));
dt.Columns.Add("3");
dt = ds.Tables[0];
dataGrid1.DataSource= dt;
myConn.Close();
private void dgColumnStyle_Column()
{
//声明DataGridTableStyle
DataGridTableStyle myTableStyle = new DataGridTableStyle( );
myTableStyle.MappingName = "SS_COLUMN"; //声明DataGridColumnStyle2
DataGridTextBoxColumn ColumnStyle2 = new DataGridTextBoxColumn();
ColumnStyle2.MappingName = "C_ENAME";
ColumnStyle2.HeaderText = "列名";
ColumnStyle2.Width = 60;
ColumnStyle2.ReadOnly = true;
myTableStyle.GridColumnStyles.Add(ColumnStyle2); //声明DataGridColumnStyle10
DataGridBoolColumn ColumnStyle10 = new DataGridBoolColumn();
ColumnStyle10.MappingName = "C_UNIQUE";
ColumnStyle10.HeaderText = "主键";
ColumnStyle10.AllowNull = false;
ColumnStyle10.NullValue = Convert.DBNull;
ColumnStyle10.TrueValue = (decimal)1;//这里注意DataTable里的列类型,string的给对应成decimal就会checkbox变灰无效
ColumnStyle10.FalseValue = (decimal)0;
ColumnStyle10.Width = 35;
ColumnStyle10.ReadOnly = true;
myTableStyle.GridColumnStyles.Add(ColumnStyle10);
//添加列格式和表格式
dataGridMain.TableStyles.Clear();
dataGridMain.TableStyles.Add( myTableStyle );
}
#endregion