我想把excel中的数据导入到数据库中,通过OLEDB取出EXCEL数据时, excel中单元格为 "false"的,程序调试时看到取出来的dataset中的结果显示为"假",但是我数据库中的这个字段的类型为 bit 型的,当插入数据时就会提示异常信息:在将 varchar 值 '假' 转换成数据类型 bit 时失败。excel中的单元格数据:
调试程序时看到的dataset中的数据:
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + fileNameUrl + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
conn = new OleDbConnection(strConn);
conn.Open();
foreach (string item in excelSheets)
{
     System.Data.DataTable dt = new System.Data.DataTable();
     OleDbDataAdapter odda = new OleDbDataAdapter(string.Format("select * from [{0}$]", item), conn);
     odda.Fill(dt);
     dt = IgnoreExcelRowA(dt);
     ds.Tables.Add(dt);
}
return ds;
ExcelOLEDB数据库

解决方案 »

  1.   

    可以在读Excel是判断是假的话,直接写成0;或者保存是判断
      

  2.   

    把Excel中CanModify中 假全改为0 真全改为1  sql用真假 用 1 0 
      

  3.   

    这个你要循环判断excel的数据了,false为0,true为1
      

  4.   

    谢谢你们的回答。
    我不太想去循环判断去改,我只是很好奇为什么会把"false"转成"假",我在数据库里试了一下,如果是"false"的话是可以插入的,为什么"false"会变成"假"呢
      

  5.   

    Excel那一竖列的格式改成文本  就不变了 
      

  6.   

    用 0 或 1 保存到数据库中的 "CanModify" 列中