C# C如何使用SQL从数据库表返回特定列
我有一个数据库,表person中有PersonID、firstName和lastName列 我试图用这个表中的所有名字填充一个组合框。这就是我到目前为止所做的:C# C如何使用SQL从数据库表返回特定列,c#,sql,database,C#,Sql,Database,我有一个数据库,表person中有PersonID、firstName和lastName列 我试图用这个表中的所有名字填充一个组合框。这就是我到目前为止所做的: public partial class MainWindow : Window { dbSet dbContext = new dbSet(); public MainWindow() { InitializeComponent(); }
public partial class MainWindow : Window
{
dbSet dbContext = new dbSet();
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var names = dbContext.People.SqlQuery("Select FirstName FROM person").ToArray();
dgMain.ItemsSource = names;
dgMain.SelectedIndex = 0;
}
但这总是会产生错误
数据读取器与指定的“dbSet.1”不兼容。“consulterid”类型的成员在数据读取器中没有同名的对应列
既然您似乎在使用实体框架,为什么要使用原始SQL??EF的全部目的是避免编写原始SQL 只需使用EF-LINQtoEntities的本机功能即可获得您的名字列表
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var names = dbContext.People.Select(p => p.FirstName);
dgMain.ItemsSource = names;
dgMain.SelectedIndex = 0;
}
你完了 您说您有一个名为Person的SQL表,希望使用其中的名称,但正在运行一个来自顾问的Select FirstName。那是打字错误吗?听起来应该是从Person.Oops中选择FirstName。我试图简化我的表格,让它更容易理解,而不必解释太多。修正了打字错误。很酷,但是错误仍然在发生,对吗?又一次在帖子中的打字错误。我有dbContext.People。我只是感到困惑,因为当我执行Select*时,它将填充我的数据网格,但当我执行Select firstname时,它会抛出一个exeption。我知道firstname是表中的一列,在实际数据库中查询它是可行的。如果您似乎在使用实体框架,为什么要使用原始SQL代码?!?!?!EF的全部目的是避免编写原始SQL。。。。只需使用dbContext.People.Selectp=>p.FirstName;就这样!è