在 C# 中如何知道 SQL Server 中表的列是否是自动数值的?
我需要在 C# 中知道 SQL Server 2005 中表的列是否是自动数值的。我知道,如果我进行查询来获取 DataTable 并浏览列,我可以使用类似的
if (table.Columns[i].AutoIncrement) bla bla
内容 问题是 AutoIncrement 始终为 false,即使该列是 Identity 和 autoincrement 列,而且我不知道除了这种方式之外,如何找出这一点。
不过,我想知道 Access 数据库也是如此。
非常感谢!!
I need to know in C# if a column of a Table in SQL Server 2005 is autonumeric. I know that if I make a query to get a DataTable and I go through the columns, I could use something like
if (table.Columns[i].AutoIncrement) bla bla
The problem is that AutoIncrement is always false, even when the column is an Identity and autoincrement column, and I don't know how to find out this, besides this way.
I would like to know the same for an Access database, though.
Thank you very much!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要做的是调用
GetSchema
方法来检索数据库架构/元数据,而不仅仅是数据库中的数据,请查看此处:GetSchema 和架构集合 (ADO.NET)
what you need to do is call the
GetSchema
method to retrieve also the db schema / metadata and not only the data from the database, have a look here:GetSchema and Schema Collections (ADO.NET)
对于
SQL Server 2005
,您可以通过使用Microsoft.SqlServer.Management.Smo
命名空间来实现此目的 - 单击此处了解更多信息SMO
所需的程序集是:位于
YOUR_SYSTEM_DRIVE_NAME:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\
You can achieve this for
SQL Server 2005
by using theMicrosoft.SqlServer.Management.Smo
namespace - Click here for more infoNeeded assemblies for
SMO
are:Found at
YOUR_SYSTEM_DRIVE_NAME:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\