有如下代码: private void button1_Click(object sender, System.EventArgs e)
{
DataTable dt=new DataTable();
dt.Columns.Add("color"); DataRow dr=dt.NewRow();
dr["color"]=Color.Yellow;
dt.Rows.Add(dr); dr=dt.NewRow();
dr["color"]=Color.Blue;
dt.Rows.Add(dr); Color c=(Color)(dt.Rows[0]["color"]);
this.button1.ForeColor=c;
}一旦我执行就会抛出异常,我只是想把Color变量赋给DataTable中的Cells,然后再取出来,可是出现这种奇怪的错误,怎样解决?还望高手赐教。

解决方案 »

  1.   

    dr["color"]=Color.Yellow;能这样赋值吗??请楼主检查
      

  2.   

    回楼上:dr["color"]=Color.Yellow; 当然可以 dr[x][y]是object变量,当然可以容得下Color
    我抛出异常的语句是这一条: Color c=(Color)(dt.Rows[0]["color"]);
    出错原因是:“Specified cast is not valid ”, 翻译过来就是“此处的强制转换无效”Help.......
      

  3.   

    dt.Columns.Add("color"); 默认是添加字符类型列DataTable dt=new DataTable();
    DataColumn dc = new DataColumn("color", typeof(System.Drawing.Color));
    dt.Columns.Add(dc); DataRow dr=dt.NewRow();
    dr["color"]=Color.Yellow;
    dt.Rows.Add(dr); dr=dt.NewRow();
    dr["color"]=Color.Blue;
    dt.Rows.Add(dr); Color c=(Color)(dt.Rows[0]["color"]);
    this.button1.ForeColor=c;
      

  4.   

    pupo(泡泡) , buddy, thanks so much
    I got it, well u are great...