我的代码如下:
string sqlString = "select * from table1";
SqlConnection sqlConnection = new SqlConnection(....);
SqlDataAdapter adapter = new SqlDataAdapter(sqlString, sqlConnection);
DataTable dt = new DataTable();
adapter.Fill(dt);bool found = false;
foreach (DataColumn col in _dt.Columns)
{
      if (col.AutoIncrement)
      {
           found = true;
           break;
      }
}
我使用col.AutoIncrement判断该列是否是自增列。。
明明表中是自增列,可是AutoIncrement的值始终是false??这是为什么?
如何判断一列是不是自增列呢?

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-08-10 09:14:35 编辑
      

  2.   

    给你个存储过程,参考一下:set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    goALTER PROCEDURE [dbo].[GetTableFields] (@TableName nvarchar(256))
    AS
    /* SET NOCOUNT ON */
     
    SELECT   a.column_id as id, a.name as mc, d.name AS lx, a.is_identity as isIdentity, a.max_length as cd, c.value as ms
    FROM      sys.columns AS a INNER JOIN
                    sys.objects AS b ON a.object_id = b.object_id LEFT OUTER JOIN
                    sys.extended_properties AS c ON a.object_id = c.major_id AND c.minor_id = a.column_id INNER JOIN
                    sys.types AS d ON d.user_type_id = a.system_type_id
    WHERE  (b.name = @TableName)==========================GetTableFields lb---------------------------
    1 aid int 1 4 NULL
    2 id char 0 1 类别
    3 mc nvarchar 0 100 类别描述
    4 fl varchar 0 50 字段列表
    5 fd nvarchar 0 512 字段描述
    7 bz nvarchar 0 512 填表的相关说明
    8 dt datetime 0 8 该类型创建的时间
      

  3.   

    1 aid int 1 4 NULL
    这里红色的1表示他是identity字段