2014-08-29 4 views
0

У меня есть выпадающий со списком всех таблиц в моей базе данных:Получить имя таблицы LinqToSql

using(DataContext db = new DataContext()) 
{ 
    cmbbx_tables.DataSource = db.Mapping.GetTables().Select(q=>new {q.TableName, q.RowType}).ToArray(); 
    cmbbx_tables.DisplayMember = "TableName"; 
    cmbbx_tables.ValueMember = "RowType";   
} 

На SelectionChangeCommitted событие, я хочу, чтобы получить имя выбранной таблицы:

private void cmbbx_tables_SelectionChangeCommitted(object sender, EventArgs e) 
{ 
    using(DataContext db = new DataContext()) 
    { 
     String table = db.Mapping.GetTable((???)cmbbx_tables.SelectedValue).TableName;     
    } 
} 

Как я должен набирать cast cmbbx_tables.SelectedValue?

+0

Если вы в конечном счете, нуждаясь тип String, то почему вы даже типажей? Просто 'cmbbx_tables.SelectedValue' выполнит эту работу, нет? IOW - 'String table = cmbbx_tables.SelectedValue;' – joym8

+0

№. Комбобокс ValueMember - это 'RowType' – koryakinp

+0

Не уверен, что вы имеете в виду. Из вашего кода 'String table = ...' и вашего вопроса «Я хочу получить имя выбранной таблицы», похоже, 'cmbbx_tables.SelectedValue.ToString()' выполнит эту работу. – joym8

ответ

0

Решение было:

String name = db.Mapping.GetTable((cmbbx_tables.SelectedValue as System.Data.Linq.Mapping.MetaType).Type).TableName; 
+0

Все еще не знаете, почему вы сталкиваетесь с проблемой вызова GetTable в своем контексте, введите его, а затем вызовите TableName , когда его право в вашем круге в форме строки через 'cmbbx_tables.SelectedValue' или' cmbbx_tables.SelectedItem.Text' – joym8

Смежные вопросы