Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net DbDataAdapter在填充的datatable上有错误的主键,我想更正此问题_.net_Sql Server_Primary Key_Dataadapter_Sqldataadapter - Fatal编程技术网

.Net DbDataAdapter在填充的datatable上有错误的主键,我想更正此问题

.Net DbDataAdapter在填充的datatable上有错误的主键,我想更正此问题,.net,sql-server,primary-key,dataadapter,sqldataadapter,.net,Sql Server,Primary Key,Dataadapter,Sqldataadapter,.NET/MSSQL服务器问题: 我使用System.Data.SqlClient.SqlDataAdapter连接到数据库并读取。从数据库中的视图填充数据表从v_coolview中选择*。 问题在于,视图当然由多个表组成,结果DataTable通常有一个主键集DataTable.PrimaryKey,它由错误的列组成 由于自动行为/算法不能仅猜测视图结果的正确PK,因此我想指定它 我怎么能做到这一点呢?我不是.NET专家,但我认为您需要先定义datatable的主键,然后在不指定Missing

.NET/MSSQL服务器问题:

我使用System.Data.SqlClient.SqlDataAdapter连接到数据库并读取。从数据库中的视图填充数据表从v_coolview中选择*。 问题在于,视图当然由多个表组成,结果DataTable通常有一个主键集DataTable.PrimaryKey,它由错误的列组成

由于自动行为/算法不能仅猜测视图结果的正确PK,因此我想指定它


我怎么能做到这一点呢?

我不是.NET专家,但我认为您需要先定义datatable的主键,然后在不指定MissingSchemaAction.AddWithKey的情况下填充该表。不幸的是,这是不可能的,因为我需要从数据库中完全读取模式。该方法应该适用于任何视图,因此它需要确定数据表本身。这就是问题所在。好吧,这真的超出了我的知识范围;我更喜欢数据库。我们过去能够通过在索引视图上指定唯一索引来欺骗Access猜测priamry键。您可能想试试看。一个可能的解决方案,但有一些负面影响:影响基本表不允许插入数据,因此视图是非法的,并且不能应用于依赖其他视图的视图。