C# 获取表名LINQtoSQL
我有一个包含数据库中所有表列表的组合框:C# 获取表名LINQtoSQL,c#,.net,linq-to-sql,datacontext,C#,.net,Linq To Sql,Datacontext,我有一个包含数据库中所有表列表的组合框: 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 = "
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 解决方案是:
String name = db.Mapping.GetTable((cmbbx_tables.SelectedValue as System.Data.Linq.Mapping.MetaType).Type).TableName;
如果你最终需要字符串类型,那你为什么还要打字呢?只需
cmbbx\u表格。选择的值将执行此操作,否?IOW-String table=cmbbx_tables.SelectedValue代码>否。组合框ValueMember是行类型
不确定您的确切意思。从您的代码String table=…
和您的问题“我想获取所选表的名称”来看,似乎cmbbx_tables.SelectedValue.ToString()
将完成这项工作。我找到了解决方案:(cmbbx_tables.SelectedValue as System.Data.Linq.Mapping.MetaType).Type
仍然不确定为什么要在上下文中调用GetTable,键入casting,然后调用TableName,而此时TableName正以字符串形式通过cmbbx_tables出现在您的膝上。SelectedValue
或cmbbx_tables。SelectedItem.Text