2009-09-30 5 views
0

.NET/MSSQL Server: Вопрос.Net DbDataAdapter имеет неправильный первичный ключ на заполненную DataTable, и я хочу, чтобы исправить эту

я использую System.Data.SqlClient.SqlDataAdapter для подключения к базе данных и читать (.Fill) данные, данные из представления в базе данных (выберите * из v_coolview). Проблема состоит в том, что представление состоит из нескольких таблиц (конечно) и в результате DataTable обычно имеет первичного ключ набора (Datatable.PrimaryKey), который состоит из неправильного столбца (ов).

Поскольку автоматическое поведение/алгоритмы не могут просто угадать правильный PK для результатов представления, я хочу его указать.

Как я могу это сделать?

ответ

0

Я не .NET парень, но я думаю, что вы должны определить первичный ключ DataTable первого (см http://msdn.microsoft.com/en-us/library/z24kefs8(VS.80).aspx), а затем заполнить таблицу без указания MissingSchemaAction.AddWithKey

+0

Unfortunatly это не представляется возможным, потому что мне нужно полностью прочитать схему из базы данных. метод должен работать с любым представлением, поэтому ему необходимо определить сам тип данных. и вот в чем проблема. – austrianuser

+0

Ну, это действительно вне сферы моих знаний; Я больше парень из базы данных. Раньше мы имели возможность обмануть Access, чтобы угадать ключ priamry, указав уникальный индекс в индексированном представлении. Вы можете попробовать это и посмотреть. –

+0

Возможное решение, но с некоторыми отрицательными побочными эффектами: влияет на базовую таблицу (запрещает вставлять данные, чтобы представление было незаконным) и не может применяться к представлениям, которые полагаются на другие представления. – austrianuser