JKwaaan Ответов: 1

"Столбец " abc" не принадлежит таблице.


Мое поле со списком не загружается и продолжает показывать эту ошибку

Column 'Item_GenName' does not belong to a table. 


Вот этот код:

void loadgeneric()
        {
            string constring = "Data Source=D-HOS-MIS2;Initial Catalog=Consignment_db;Persist Security Info=True;User ID=sa;Password=t.july.01";
            string query = "select distinct convert(varchar,Item_GenName) from ItemMasterlistTable where datalength(Item_GenName) != 0";
            SqlConnection con_db = new SqlConnection(constring);
            SqlCommand cmd = new SqlCommand(query, con_db);
            SqlDataReader reader;

            try
            {
                DataTable gencombo = new DataTable();
                con_db.Open();
                reader = cmd.ExecuteReader();
                gencombo.Load(reader);
                foreach (DataRow row in gencombo.Rows)
                {
                 Item_GenName.Items.Add(row["Item_GenName"]);
                }
                Item_GenName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                Item_GenName.AutoCompleteSource = AutoCompleteSource.ListItems;


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


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

До того, как он вызвал эту ошибку, мой sql был просто просто

select Item_GenName from ItemMasterlist


Я хотел, чтобы он извлекал непустые и неповторяющиеся элементы, вот почему я привел к этому запросу.

1 Ответов

Рейтинг:
5

Maciej Los

Взгляните на эту строку:

string query = "select distinct convert(varchar,Item_GenName) from ItemMasterlistTable where datalength(Item_GenName) != 0";

Это возвращает что-то вроде: (No column name) Итак, измените его следующим образом:
string query = "select distinct convert(varchar,Item_GenName) AS Item_GenName from ItemMasterlistTable where datalength(Item_GenName) != 0";

тогда вы сможете обратиться к колонке Item_GenName