C# 在c中,我总是在表定义中将Autoincrementseed值设置为0,即使该表的列的值在ms sql中将seed设置为1

C# 在c中,我总是在表定义中将Autoincrementseed值设置为0,即使该表的列的值在ms sql中将seed设置为1,c#,asp.net,sql-server,ado.net,C#,Asp.net,Sql Server,Ado.net,我正在使用sql server中的c代码创建表。为此,我创建了一个动态表创建函数,其中传递了一些参数。其中一个参数是datatable,我在其中获取列详细信息。一切正常,但一个小问题是sql中是否有标识为1,1的表 在c中,我得到该列的种子值为0,因此数据以id值0插入 为了从数据库中获取表的定义,我使用了如下简单的查询 select * from tablename 如果需要任何进一步的细节或额外的代码,请告诉我,然后我可以在这里提供 好的,我已经更新了我的问题,我是如何填写我的数据表的 s

我正在使用sql server中的c代码创建表。为此,我创建了一个动态表创建函数,其中传递了一些参数。其中一个参数是datatable,我在其中获取列详细信息。一切正常,但一个小问题是sql中是否有标识为1,1的表

在c中,我得到该列的种子值为0,因此数据以id值0插入

为了从数据库中获取表的定义,我使用了如下简单的查询

select * from tablename
如果需要任何进一步的细节或额外的代码,请告诉我,然后我可以在这里提供

好的,我已经更新了我的问题,我是如何填写我的数据表的

sqlcmd = new SqlCommand("select * from item.TableName", connSource);
dt = new DataTable();
dt.Load(sqlcmd.ExecuteReader());

请尝试以下C代码查询并传递tablename以获取种子和步骤:

 SqlCommand sqlcmd = new SqlCommand("SELECT IDENT_SEED(TABLE_NAME) AS    
 Seed,IDENT_INCR(TABLE_NAME) AS Increment FROM INFORMATION_SCHEMA.TABLES 
 WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME), 'TableHasIdentity') = 1 AND 
 TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME = '" + tableName + "'", 
 srcConStr);

 SqlDataReader readercmd = sqlcmd.ExecuteReader();

 while (readercmd.Read())
 {
    sqlsc += " IDENTITY(" + readercmd["Seed"].ToString() + "," +    
    readercmd["Increment"].ToString() + ") ";
 }

 readercmd.Close();

你能告诉我们你的ado.net的全部代码吗?为什么你期望它是1?数据表是如何填充的,可能有issue@TimSchmelter因为在创建该表时,我在数据库中将标识设置为1,1,并且我希望该表的定义与种子值1相同,而不是0。对于像我前面提到的那样填充数据表,我只是使用select*from查询。@kandarp:您应该显示该代码,例如:使用var da=new SqlDataAdapterSELECT*from tablename,con{var t=new datatable;da.FillSchemat,SchemaType.Source;}你确定这是一个实际问题吗?我似乎还记得,在某些情况下,空表在某些元数据查询中报告的标识信息与插入的表不同。目前找不到该文档,但插入行时这是实际问题吗?