我们需要为访问数据库编写什么查询以获取特定表的主键列名。查询获取访问数据库中表的主键
我使用c#和访问数据库的文件格式为.mdb。我正在使用OleDbConnection类。
我想要获取访问数据库中的主键列名称,使用查询,就像从sys.information_schema中选择columnName一样。这个查询与sql server一起工作。我想要这样的查询,这与ms访问工作。
谢谢。
我们需要为访问数据库编写什么查询以获取特定表的主键列名。查询获取访问数据库中表的主键
我使用c#和访问数据库的文件格式为.mdb。我正在使用OleDbConnection类。
我想要获取访问数据库中的主键列名称,使用查询,就像从sys.information_schema中选择columnName一样。这个查询与sql server一起工作。我想要这样的查询,这与ms访问工作。
谢谢。
这可能会有所帮助:http://gsraj.tripod.com/dotnet/ado_net/ado.net_retrieving_database_metadata.html
连同这样的:意见后http://msdn.microsoft.com/en-us/library/system.data.datatable.primarykey.aspx
编辑: 我错了:
SELECT MSysObjects.* FROM MSysObjects
你必须谷歌的细节寿,得走...
我想要提供与表关联的主键列名称的查询。上面的链接通过使用OleDbConnection类而不是查询来完成。我已经用OleDbConnection类完成了它,但我想用查询来完成它。 – Awadhendra 2012-03-01 13:25:29
如果我没有弄错,msjet引擎不会携带元数据表......你必须使用ado.net,但我不是100%确定的。 – mindandmedia 2012-03-01 13:35:39
我知道这是相当一段时间后,你想要一个查询,但我有一些额外的信息:1)我不认为你可以通过查询使用OLE提供程序找到主键。 2)你一定可以通过GetOleDbSchemaTable获得主键(OleDbSchemaGuid.Columns,null)。至少它对我来说很有效。 – 2014-08-11 22:29:10
DataTable cols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Constraint_Column_Usage,...
其实我想通了。就像Awadhendra所说的,我必须制作一个隐藏的主要专栏,这就是我所做的。
这是得到第一列隐藏的代码。
String SelectedID = dgvInventory.Rows[dgvInventory.CurrentRow.Index].Cells[0].Value.ToString();
是否有任何查询访问数据库来检查关键表是否有主键,如果有主键则返回包含主键的列名。我想通过使用查询来做到这一点。 – Awadhendra 2012-03-02 14:06:41