2009-04-19 22 views
5

que desea recuperar estos datos para una tabla de MySQL usando C#cómo obtener todos los detalles sobre una tabla mysql usando C#?

1) definiciones de columna completa incluyendo nombre, tamaño y tipo de datos, y la información extra, como nula/no es nulo, sin firmar, increament automático, los valores por defecto, si los datos tipo es de enumeración, los valores aceptados

2) todas las restricciones - primaria/Exteriores/Verificar/únicos

3) Todos los índices

puedo conseguir la columna relacionada información básica usando "describir nombre_tabla" consulta en la base de datos.

pero ¿cómo recuperar toda esta información?

cordiales, Anjan

Respuesta

6

acaba de lanzar consultas en INFORMATION_SCHEMA ...

Por ejemplo, para obtener definiciones de columna:

SELECT TABLE_NAME 
     , COLUMN_NAME 
     , DATA_TYPE 
     , CHARACTER_MAXIMUM_LENGTH 
     , CHARACTER_OCTET_LENGTH 
     , NUMERIC_PRECISION 
     , NUMERIC_SCALE AS SCALE 
     , COLUMN_DEFAULT 
     , IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 

Tome un vistazo a the information schema tables para obtener información adicional.

Espero que ayude.

2

Usted puede utilizar SqlDataReader.GetSchemaTable() método y esto es contestar sólo para su opción 1), pero esto se puede hacer usando misma conexión a su esquema, si su cadena de conexión tiene la base de datos por defecto (opción de esquema) establece. (No es necesario crear una conexión independiente al esquema INFORMATION_SCHEMA).

Más información sobre este método se puede encontrar here y ejemplo de cómo usarlo here.

Para obtener todo sobre su esquema o bases de datos, use la clase SqlClientMetaDataCollectionNames.

Más información acerca de la clase se puede encontrar here y el ejemplo de cómo usarlo here

Cuestiones relacionadas