AllowDBNull   如果使用者可以将此列设置为空值,或者如果驱动程序不能确定使用者是否可以将此列设置为空值,则为   true。否则为   false。即使列无法设置为空值,它仍可能包含空值。   

解决方案 »

  1.   

    Access的逻辑字段只有两个值真/假,没有null值
    有的字段可以有null值,不是每个字段都能有null值
      

  2.   

    public void Cmake(string filename)
            {
                string name = filename;
                //name.Replace("'", "");
                //name.Replace(" ", "");
                ADOX.Catalog catalog = new Catalog();
                string ss = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=e:\\"+name;
                string dd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\"+name;
                catalog.Create(ss);//创建数据库            ADODB.Connection cn = new ADODB.Connection();            cn.Open(dd, null, null, -1);
                catalog.ActiveConnection = cn;            ADOX.Table table = new ADOX.Table();//实例化一个表
                table.Name = "自动运算表";            ADOX.Column column = new ADOX.Column();//实例化字段
                            
                table.Columns.Append("参数", DataTypeEnum.adInteger, 5);
                table.Columns.Append("取值图", DataTypeEnum.adInteger, 5);
                table.Columns.Append("总表行数", DataTypeEnum.adInteger, 5);
                table.Columns.Append("对零行", DataTypeEnum.adInteger, 5);
                table.Columns.Append("颜色1", DataTypeEnum.adInteger, 5);
                table.Columns.Append("颜色2", DataTypeEnum.adInteger, 5);
                           
                catalog.Tables.Append(table);            cn.Close();
            }
    这是我的代码段,请各位大虾 帮忙看看 ,在哪设置 允许为空! 
      谢谢!
      

  3.   

    这是我的代码段,问题解决了!拿出来让大家讨论一下 ,有更好的建议请留言!谢谢!ll = dsRead.Tables["Pantent"].Columns.Count;//获取写入的列数
                nn = dsRead.Tables["Pantent"].Rows.Count;//获取写入的行数
                for (int i = 0; i < dsRead.Tables["Pantent"].Rows.Count; i++)
                {
                    dsRead.Tables["test"].Rows.InsertAt(dsRead.Tables["test"].NewRow(), i);
                    //dsRead.Tables["test"].Rows[i][0] = i;//给第一个单元格赋值
                    for (int j = 0; j < dsRead.Tables["Pantent"].Columns.Count; j++)
                    {
                        if (dsRead.Tables["Pantent"].Rows[i][j].ToString().Trim() == "")
                        {
                            dsRead.Tables["test"].Rows[i][j] = DBNull.Value;
                        }
                        else
                        {
                            dsRead.Tables["test"].Rows[i][j] = dsRead.Tables["Pantent"].Rows[i][j];
                        }
                    }
                    for (int k = dsRead.Tables["Pantent"].Columns.Count; k < dsRead.Tables["test"].Columns.Count; k++)
                    {
                        dsRead.Tables["test"].Rows[i][k] = DBNull.Value;
                    }
                }