Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#/.net中是否有与MySQL show columns语句等价的语句?_C#_Mysql_.net - Fatal编程技术网

在c#/.net中是否有与MySQL show columns语句等价的语句?

在c#/.net中是否有与MySQL show columns语句等价的语句?,c#,mysql,.net,C#,Mysql,.net,我希望以编程方式获取MySQL数据库中表中所有列的属性。具体地说,我希望找到一个列是否可以为空,这样就可以在用C#/WPF编写的用户界面中识别所需的项 我正在使用MySqlCommandBuilder.DeriveParameters(命令)来标识特定存储过程中所需的列,和。Parameter.IsNullable在由DeriveParameters返回的参数列表中始终返回false 这是数据库中的一个表: -- -----------------------------------------

我希望以编程方式获取MySQL数据库中表中所有列的属性。具体地说,我希望找到一个列是否可以为空,这样就可以在用C#/WPF编写的用户界面中识别所需的项

我正在使用MySqlCommandBuilder.DeriveParameters(命令)来标识特定存储过程中所需的列,和。Parameter.IsNullable在由DeriveParameters返回的参数列表中始终返回false

这是数据库中的一个表:

-- -----------------------------------------------------
-- Table `pacswlibinvtool`.`authorstab`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `pacswlibinvtool`.`authorstab` ;

CREATE TABLE IF NOT EXISTS `pacswlibinvtool`.`authorstab` (
    `idAuthors` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `LastName` VARCHAR(20) NOT NULL,
    `FirstName` VARCHAR(20) NOT NULL,
    `MiddleName` VARCHAR(20) NULL DEFAULT NULL,
    `YearOfBirth` VARCHAR(4) NULL DEFAULT NULL,
    `YearOfDeath` VARCHAR(4) NULL DEFAULT NULL,
    PRIMARY KEY (`idAuthors`, `LastName`, `FirstName`),
    UNIQUE INDEX `idAuthors_UNIQUE` (`idAuthors` ASC),
    INDEX `LastName` (`LastName` ASC),
    INDEX `LastCMFirst` (`LastName` ASC, `FirstName` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = UTF8MB4;

我希望能够识别c#应用程序中可以为null的列。

您可以使用标准的.columns来探索列的属性

string cmdText = @"SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
                   WHERE Table_Name = 'authorstab'";
using(MySqlConnection cnn = GetMySqlConnection())
using(MySqlCommand cmd = new MySqlCommand(cmdText, cnn))
{
    DataTable dt = new DataTable();
    cnn.Open();
    using(MySqlDataReader reader = cmd.ExecuteReader())
        dt.Load(reader);
}

现在DataTable dt充满了行,每行包含表中每一列的所有信息,还包括一个名为is_NULLABLE的列,类型为boolean

您可以使用标准的.COLUMNS来浏览列的属性

string cmdText = @"SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
                   WHERE Table_Name = 'authorstab'";
using(MySqlConnection cnn = GetMySqlConnection())
using(MySqlCommand cmd = new MySqlCommand(cmdText, cnn))
{
    DataTable dt = new DataTable();
    cnn.Open();
    using(MySqlDataReader reader = cmd.ExecuteReader())
        dt.Load(reader);
}

现在,DataTable dt充满了行,每行都包含表中每一列的所有信息,还包括一个名为is_NULLABLE的布尔型列,请参阅下面的代码-

    cn = new SqlConnection("Data Source=.;Initial Catalog=DBName;Integrated Security=True");
        cn.Open();
         SqlCommand command = new SqlCommand("SELECT COLUMN_NAME,IS_NULLABLE FROM information_schema.columns WHERE TABLE_NAME = 'My_Test_Table' ", cn);
        command.ExecuteNonQuery();
        var reader = command.ExecuteReader();

           while( reader.Read())
           {

                string str1="Column name is   "+ reader.GetString(0) + "  Null Allowed : - " + reader.GetString(1); 
                MessageBox.Show(str1);

            }
        }

请参阅以下代码-

    cn = new SqlConnection("Data Source=.;Initial Catalog=DBName;Integrated Security=True");
        cn.Open();
         SqlCommand command = new SqlCommand("SELECT COLUMN_NAME,IS_NULLABLE FROM information_schema.columns WHERE TABLE_NAME = 'My_Test_Table' ", cn);
        command.ExecuteNonQuery();
        var reader = command.ExecuteReader();

           while( reader.Read())
           {

                string str1="Column name is   "+ reader.GetString(0) + "  Null Allowed : - " + reader.GetString(1); 
                MessageBox.Show(str1);

            }
        }