C# 如何在C中获取Ms Access表的主键#
在给定连接和表名的情况下,我需要一个或多个字段(只要字段的名称就可以)来构成Microsoft Access表的主键 好吧,我想我找到了。它应该适用于所有oledb,如下所示:C# 如何在C中获取Ms Access表的主键#,c#,ms-access,primary-key,C#,Ms Access,Primary Key,在给定连接和表名的情况下,我需要一个或多个字段(只要字段的名称就可以)来构成Microsoft Access表的主键 好吧,我想我找到了。它应该适用于所有oledb,如下所示: public static List<string> getKeyNames(String tableName, DbConnection conn) { var returnList = new List<string>(); DataTable my
public static List<string> getKeyNames(String tableName, DbConnection conn)
{
var returnList = new List<string>();
DataTable mySchema = (conn as OleDbConnection).
GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys,
new Object[] {null, null, tableName});
// following is a lengthy form of the number '3' :-)
int columnOrdinalForName = mySchema.Columns["COLUMN_NAME"].Ordinal;
foreach (DataRow r in mySchema.Rows)
{
returnList.Add(r.ItemArray[columnOrdinalForName].ToString());
}
return returnList;
}
publicstaticlist getKeyNames(stringtablename,DbConnection-conn)
{
var returnList=新列表();
数据表mySchema=(连接为OleDbConnection)。
GetOleDbSchemaTable(OleDbSchemaGuid.Primary_键,
新对象[]{null,null,tableName});
//下面是数字“3”的冗长形式:-)
int columnOrdinalForName=mySchema.Columns[“COLUMN_NAME”].Ordinal;
foreach(mySchema.Rows中的数据行r)
{
添加(r.ItemArray[columnOrdinalForName].ToString());
}
退货清单;
}
好的,我想我找到了。它应该适用于所有oledb,如下所示:
public static List<string> getKeyNames(String tableName, DbConnection conn)
{
var returnList = new List<string>();
DataTable mySchema = (conn as OleDbConnection).
GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys,
new Object[] {null, null, tableName});
// following is a lengthy form of the number '3' :-)
int columnOrdinalForName = mySchema.Columns["COLUMN_NAME"].Ordinal;
foreach (DataRow r in mySchema.Rows)
{
returnList.Add(r.ItemArray[columnOrdinalForName].ToString());
}
return returnList;
}
publicstaticlist getKeyNames(stringtablename,DbConnection-conn)
{
var returnList=新列表();
数据表mySchema=(连接为OleDbConnection)。
GetOleDbSchemaTable(OleDbSchemaGuid.Primary_键,
新对象[]{null,null,tableName});
//下面是数字“3”的冗长形式:-)
int columnOrdinalForName=mySchema.Columns[“COLUMN_NAME”].Ordinal;
foreach(mySchema.Rows中的数据行r)
{
添加(r.ItemArray[columnOrdinalForName].ToString());
}
退货清单;
}
你帮了我很多忙。我无法理解为什么一个如此有用的解决方案没有我能找到的文档化用法。你帮了我很多忙。我无法理解为什么一个如此有用的解决方案没有我能找到的文档化用法。