比较复杂,
你的数据库是不是sql server??

解决方案 »

  1.   

    SqlConnection conn=new SqlConnection(....);
    SqlCommand cmd=new SqlCommand("sp_fkeys ",yourConn);
    cmd.Parameters.Add(new SqlParameter("@pktable_name",SqlTypes.Varchar,255));
    cmd.Parameters[0].Value="your table name"
    SqlDataReader dr=cmd.Excute();
    dr.Open();
    while(dr.Read())
    {
        ....
    }
    大概的思路就是通过sp_fkeys来获得所有的外键,你看一下sql server有关sp_fkeys的帮助吧,
      

  2.   

    如:下面的程序取出northwind中Customers表的所有外键
    static void Main(string[] args)
    {
             SqlConnection conn=new SqlConnection("server=tao;uid=sa;password=;database=northwind");
    conn.Open();
    SqlCommand cmd=new SqlCommand("exec sp_fkeys @pktable_name",conn);
    cmd.Parameters.Add("@pktable_name",SqlDbType.NVarChar,255).Value="Customers";
    SqlDataReader dr=cmd.ExecuteReader();
    int pkColumn,fkTable,fkColumn;
    pkColumn=dr.GetOrdinal("PKCOLUMN_NAME");
    fkTable=dr.GetOrdinal("FKTABLE_NAME");
    fkColumn=dr.GetOrdinal("FKCOLUMN_NAME");
    Console.WriteLine("PKTABLE_NAME\tFKTABLE_NAME\tFKCOLUMN_NAME");
    while(dr.Read())
    {
    Console.WriteLine("{0}  {1}   {2}",dr.GetValue(pkColumn),dr.GetValue(fkTable),dr.GetValue(fkColumn));
    }
    Console.ReadLine();
    dr.Close();
    conn.Close();
    conn.Dispose();
    }
      

  3.   

    是Sqlserver
    怎样得到主建的字段?