我的代码如下:
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??这是为什么?
如何判断一列是不是自增列呢?
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 该类型创建的时间
这里红色的1表示他是identity字段