【问题标题】:Displaying SQL Query in TextBox在文本框中显示 SQL 查询
【发布时间】:2020-06-14 10:05:08
【问题描述】:

菜鸟问题

我目前正在 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>();
        } 

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

【问题讨论】:

  • 您知道,您不需要执行原始 SQL 查询,拥有 DbSet 的全部意义在于将您与 SQL 隔离。
  • 谢谢,我知道,但我不知道应该用什么来代替 SQL。我尝试了 LINQ,但无法正常工作。

标签: c# wpf entity


【解决方案1】:

您需要将结果转换为字符串,这样就可以了:

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,因此 List 可能是可视化结果的更好选择。将此添加到您的 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;

【讨论】:

  • 有效!起初我遇到了问题,但这只是我的愚蠢错误,谢谢!
猜你喜欢
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2014-07-03
  • 1970-01-01
  • 2011-03-16
  • 2014-01-11
相关资源
最近更新 更多