首页 > 解决方案 > 在文本框中显示 SQL 查询

问题描述

菜鸟问题

我目前正在 WPF 中编写一个应用程序,该应用程序连接到在 Entity Framework 的 Code First 上创建的数据库。我想进行查询,然后在 TextBox 中显示结果。

这是我的数据库上下文类:

class CepikDB : DbContext
{
    public CepikDB() : base()
    {
        Database.SetInitializer<CepikDB>(new CreateDatabaseIfNotExists<CepikDB>());
    }
    public DbSet<Cars> Pojazdy { get; set; }
    public DbSet<Drivers> Kierowcy { get; set; }
    public DbSet<DrivingLicense> PrawoJazdy { get; set; }
    public DbSet<InsurancePolicy> Polisa { get; set; }
    public DbSet<TechnicalReview> BadanieTechniczne { get; set; }
    public DbSet<CarDocsAndInfo> Informacje { get; set; }
}

这就是我想要执行查询的方式:

    using (var ctx = new CepikDB())
        {
            var driverList = ctx.Kierowcy
                .SqlQuery("Select * From Kierowcy")
                .ToList<Drivers>();
        } 

但是,我不确定如何在文本框中显示查询结果。

标签: c#wpfentity

解决方案


您需要将结果转换为字符串,如下所示:

StringBuilder sb = new StringBuilder();
foreach(var driver in driverList)
{
    sb.AppendLine("$First name: {driver.FirstName}");
    sb.AppendLine("$Last name: {driver.LastName}");
}

string text = sb.ToString();

然后你可以使用 text 变量来设置你的文本框的值。

但由于您使用的是 WPF,因此列表可能是可视化结果的更好选择。将此添加到您的 XAML:

    <ListView x:Name="MyList">
        <ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding=
                      "{Binding Path=FirstName}" 
                  Header="First Name" Width="100"/>

                <GridViewColumn DisplayMemberBinding=
                      "{Binding Path=LastName}" 
                  Header="Last Name" Width="100">
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

然后在后面的代码中设置列表,如下所示:

MyList.ItemsSource = driverList;

推荐阅读