C#如何使用SQL从数据库表返回特定列

时间:2014-11-08 04:21:55

标签: c# sql database

我有一个包含person列的表PersonID, firstName, lastName的数据库。

我正在尝试使用此表中的所有名字填充组合框。这就是我到目前为止所做的:

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.Counselor1'不兼容。该类型的成员' CounselorID'在数据阅读器中没有相应的列具有相同的名称。

1 个答案:

答案 0 :(得分:0)

因为您似乎正在使用Entity Framework - 为什么使用原始SQL? EF的重点是避免编写原始SQL!

只需使用" native" EF - Linq-to-Entities的功能 - 获取名字列表!

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    var names = dbContext.People.Select(p => p.FirstName);

    dgMain.ItemsSource = names;
    dgMain.SelectedIndex = 0;
}

你完成了!