如何找出数据表中哪些列可为空



有没有办法找出数据表中哪些列可以为空?我知道有一个特性:DataColumn.AllowDBNull,它可以在DataSet的设计模式下设置为true或false,但我希望直接从数据库中获得此信息。

我有一个 DGV 填充了来自 MySQL 数据库的值,并将 DGV 的数据源绑定到数据表。

作为解决方案,我决定检索数据库的列模式,并从那里分配哪些列允许DBNull:

     DataTable dbColumnsSchema;
     using (MySqlConnection connection = new MySqlConnection(ConnectionString))
        {
            connection.Open();
        dbColumnsSchema = connection.GetSchema("Columns");
            connection.Close();
        }
        AssignMandatoryColumns(dbColumnsSchema);
    }
    private void AssignMandatoryColumns(DataTable table)
    {
      foreach (DataRow row in table.Rows)
            if (row["TABLE_NAME"].ToString()==myTableName)
                if(row["IS_NULLABLE"].ToString()=="NO")
                {  string columnName = row["COLUMN_NAME"].ToString();
                    myDataSet.Tables[myTableName].Columns[columnName].
                        AllowDBNull = false;
                }
    }

可以使用以下命令来确定数据表中的哪些数据列可为空(AllowDBNull设置为 true):

var nullableDataColumns = dataTable.Columns.Cast<DataColumn>().Where(c => c.AllowDBNull);
foreach (var col in nullableDataColumns) {
    Console.WriteLine(col.ColumnName);
}

相关内容

  • 没有找到相关文章

最新更新