dataGridView中如何判断单元格中的值为数字还是字符类型?
 
  List<double> values = new List<double>();  for (int i = 0; i < dataGridView.Columns.Count; i++)
  {
        for (int j = 0; j < dataGridView.Rows.Count; j++)
{
  if (dataGridView.Rows[j].Cells[i].Value != DBNull.Value)
     values.Add(Convert.ToDouble(dataGridView.Rows[j].Cells[i].Value));
}
  }   这段代码只能对输入数值类型的值进行操作,如果dataGridView输入字符类型的,就报错!   所以想问下如何判断单元格中的值为字符类型? 高手指点下!

解决方案 »

  1.   

    try
        Convert.ToDouble(dataGridView.Rows[j].Cells[i].Value)
    catch ex
        response.write("not Numeric")
    end try
      

  2.   


    if(typeof(string) == dataGridView.Rows[j].Cells[i].Value.GetType())
    {
     //code here
    }
      

  3.   

      List <double> values = new List <double>();   for (int i = 0; i < dataGridView.Columns.Count; i++) 
      { 
            for (int j = 0; j < dataGridView.Rows.Count; j++) 

      if (dataGridView.Rows[j].Cells[i].Value != DBNull.Value) 
    {
    try{
        values.Add(Convert.ToDouble(dataGridView.Rows[j].Cells[i].Value)); 
    }
    catch
    {
    messagebox.show("转换错误!");
    }
    }

      }
      

  4.   

    for (int j = 0; j < dataGridView1.Rows.Count; j++)
    {
      if (dataGridView.Columns[i].ValueType == typeof(string)) continue;
      if (dataGridView.Rows[j].Cells[i].Value != DBNull.Value) 
         values.Add(Convert.ToDouble(dataGridView.Rows[j].Cells[i].Value)); 
      

  5.   

    dataGridView.Rows[j].Cells[i].Value 获得的本来就是字符串类型的,所以还是用try ,catch 正确!