Вместо ListView
попробуйте использовать DataGridView
, заменив эти строки
cmbResults.DataSource = dsListOfNonPrimaryKeys.Tables["INFORMATION_SCHEMA.TABLE_CONSTRAINTS"];
cmbResults.DisplayMember = "TABLE_NAME";
cmbResults.ValueMember = ("");
с этим
dataGridView1.DataSource = dsListOfNonPrimaryKeys.Tables["INFORMATION_SCHEMA.TABLE_CONSTRAINTS"];
Вы можете установить свойства на DataGridView
, чтобы он выглядел больше как ListView
, например:
dataGridView1.RowHeadersVisible = false;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
Редактировать
Также, глядя на ваш запрос, если ваша цель - получить таблицы, которые не имеют первичных ключей, попробуйте следующее:
select t.TABLE_NAME
from INFORMATION_SCHEMA.TABLES t
left join INFORMATION_SCHEMA.TABLE_CONSTRAINTS c
on t.TABLE_SCHEMA = c.TABLE_SCHEMA
and t.TABLE_NAME = c.TABLE_NAME
and c.CONSTRAINT_TYPE = 'PRIMARY KEY'
where t.TABLE_TYPE = 'BASE TABLE'
and c.CONSTRAINT_TYPE is null
Представление INFORMATION_SCHEMA.TABLE_CONSTRAINTS
также включает строки для ограничений FOREIGN KEY
, CHECK
и UNIQUE
, поэтому ваш запрос в его текущем виде выберет имена таблиц, связанные с любым из этих ограничений.