数据如下:提示说“不能将值 NULL 插入列 'TJNF',列不允许有空值”
网上说字段不匹配,该字段我用的是nchar(4)。像2005、平均年份都不应该报错的啊?

解决方案 »

  1.   

    大哥,TJNF是主键!!!
    “平均年份”不是空的,我用nchar(4)表示,怎么会是空的呢?
      

  2.   

    改了也不行,我用的nchar(4)本来就是Unicode4字符的,可以包含4个英文字符和汉字的,不用改!
      

  3.   

    为什么“平均年份”无法导入到nchar(4)的字段中呢?
      

  4.   

    你用什么方式导入的?excel导入sql server的时候,会有一个问题
    在excel里,如果某一列的数据,有一些是字符,有一些是数字的时候,就像楼主的数据
    所有月份  --这个是字符
    2005 2006--这些是数字那就有可能忽略后面的2005 2006数据,这些数据就变成null了。我这样说不知道楼主能明白不。
    再举个例子:比如我有数据
    2005
    2006
    2007
    所有像这样的,那 所有 这个,就给当作null值导入了
    同理如果字符类型的数据放在前面,那后面的数字就会被null掉
      

  5.   

    导入方式:insert into TB5
     select * from opendatasource
     ( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="D:\Excel\表5.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]coolingpipe说的很正确啊,可是怎么将字符导入到表中呢?
      

  6.   

    期待高手点拨!
    VS2008自带的Excel数据导入导出工具和代码都不能将“2005”、“平均年份”同时导入到Excel中,该字段为nchar和nvarchar都不行!
      

  7.   

    不是空字段啊,Excel中有数字和汉字,导入SQL中后汉字都变成了NULL,SQL字段类型是nchar,应该没有空值的啊?