Ankush Soni Ответов: 2

Отображение всех столбцов, кроме первичного ключа, в списке в C#


Я хочу отобразить все имена столбцов столбцов, кроме первичного ключа, в списке в C#. Как мне это сделать?

Мой код выдает мне следующую ошибку:
Column_type недопустимое имя столбца''.

пожалуйста помочь. Я использую MS-SQL для того же самого.

Что я уже пробовал:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
       {

               string cmdstr = @"select * from information_schema.columns where table_name = '" + comboBox1.SelectedItem + "' and column_type <> 'PRI'";
               string conStr = @"Data Source=INPDDBA027\NGEP;Initial Catalog=Dev_Server;Integrated Security=True";
               DataTable dt = new DataTable();
               SqlDataAdapter sda = new SqlDataAdapter(cmdstr, conStr);
               sda.Fill(dt);
               listBox2.DataSource = dt;
               listBox2.DisplayMember = "Column_Name";
       }

2 Ответов

Рейтинг:
0

Karthik_Mahalingam

попробовать это

select COLUMN_NAME from information_schema.columns where table_name = 'YourTableName' 
except 
SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON tc.CONSTRAINT_NAME = ccu.Constraint_name
    WHERE tc.CONSTRAINT_TYPE = 'Primary Key' and  tc.table_name  = 'YourTableName'  


Примечание: Ваш код таков Уязвимый к SQL-инъекция [^] атаки
Всегда использовать Параметризованные запросы для предотвращения атак SQL-инъекций в SQL Server[^]


Рейтинг:
0

RossMW

Column_Type не является допустимым полем в таблице, к которой вы обращаетесь в SQL

Попробуй

SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON tc.CONSTRAINT_NAME = ccu.Constraint_name
    WHERE tc.CONSTRAINT_TYPE = 'Primary Key'
чтобы узнать, какие столбцы являются первичными ключами и присоединяются к таблице, на которую вы ссылаетесь.