private void Form1_Load(object sender, System.EventArgs e)

string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\mcTest.MDB";
string strSQL = "SELECT * FROM Developer" ;// create Objects of ADOConnection and ADOCommand
OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbDataAdapter myCmd = new OleDbDataAdapter( strSQL, myConn );myConn.Open();
DataSet dtSet = new DataSet();
myCmd.Fill( dtSet, "Developer" );
DataTable dt = dtSet.Tables[0];listBox1.Items.Add("Field Name DataType Unique AutoIncrement AllowNull");
listBox1.Items.Add("==================================================================");foreach( DataColumn dc in dt.Columns )
{
listBox1.Items.Add(dc.ColumnName+" , "+dc.DataType +" ,"+dc.Unique +" ,"+dc.AutoIncrement+" ,"+dc.AllowDBNull );
}} 原文连接:
http://www.c-sharpcorner.com/database/table_p.asp

解决方案 »

  1.   

    //test it
    /// <summary>
    /// get the length of m_FieldName where m_FieldName datatype is text
    /// </summary>
    /// <param name="m_FieldName">Field Name</param>
    /// <param name="m_TableName">Table Name</param>
    /// <param name="m_PubConn">Connection of database</param>
    /// <returns></returns>
    public int GetFieldLength(string m_FieldName,string m_TableName,OleDbConnection m_PubConn)
    {
    DataTable m_SchemaTable = m_PubConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new object[]{null,null,m_TableName,m_FieldName});

    if(m_SchemaTable.Rows.Count>0)
    {
    int length = 0;
    try
    {
    length = Convert.ToInt32(m_SchemaTable.Rows[0]["CHARACTER_MAXIMUM_LENGTH"]);
    }
    catch 
    {
                       length =0;
    }
    return length;
    }
    else
    return 0; 
    }