SqlCommand cm;
cm = new SqlCommand("SELECT FullName FROM LstCustomers", MainFrm.SqlConn);
SqlDataReader MyReader = cm.ExecuteReader();
while(MyReader.Read())
{
CustomersList.Items.Add(MyReader.GetString(0));
}
MyReader.Close();
SqlAdap = new SqlDataAdapter("SELECT IDRec FROM LstCustomers", MainFrm.SqlConn);
SqlAdap.Fill(ds1, "Customers");
ComboBox и БД
На данный момент решаю проблему так:
Код:
То есть: заполняю комбобокс названиями, заполняю DstaSet
айдишниками. Когда юзер выбрал строку, смотрю ее номер и вытягиваю айдишник из DataSet.
P.S. Это всея делаю как-то геморойно. Да и если ComboBox отсортировать, то вообще не будет работать
Совсем не обязательно засовывать в него(в комбо) именно объект стринга.
Можно создать структурку, например такую:
Код:
struct TCustomers
{
string Name;
int Id;
}
{
string Name;
int Id;
}
В Вашем коде сделать такие изменения:
Код:
SqlCommand cm;
cm = new SqlCommand("SELECT FullName FROM LstCustomers", MainFrm.SqlConn);
SqlDataReader MyReader = cm.ExecuteReader();
TCustomers oCustomer = new oCustomer();
while(MyReader.Read())
{
oCustomer.Name = MyReader.GetString(0); // Здесь хранятся имена!
oCustomer.Id = (А здесь должен лежать айдишник для текущего имени);
CustomersList.Items.Add(oCustomer);
}
MyReader.Close();
cm = new SqlCommand("SELECT FullName FROM LstCustomers", MainFrm.SqlConn);
SqlDataReader MyReader = cm.ExecuteReader();
TCustomers oCustomer = new oCustomer();
while(MyReader.Read())
{
oCustomer.Name = MyReader.GetString(0); // Здесь хранятся имена!
oCustomer.Id = (А здесь должен лежать айдишник для текущего имени);
CustomersList.Items.Add(oCustomer);
}
MyReader.Close();
Но это не все. Необходимо переопределить метод ToString() в нашей структуре!
Код:
struct TCustomers
{
string Name;
int Id;
public override string ToString()
{
return this.Name;
}
}
{
string Name;
int Id;
public override string ToString()
{
return this.Name;
}
}
Извлечение объекта из комбо-бокса выглядит так:
Код:
TCustomers oCustomerSelect = new TCustomers();
oCustomerSelect = (TCustomers)CustomersList.SelectedItem;
oCustomerSelect = (TCustomers)CustomersList.SelectedItem;
Теперь все.
Желаю удачи! ;)
Цитата:
Originally posted by Pulf
Теперь все.
Желаю удачи! ;)
Теперь все.
Желаю удачи! ;)
Спасибо. Моей благодарности нету границ. Теперь все стало ясно. Уже внедрил - работает как часы.