c# - 如何只接收某些列?

标签 c# sql database

我有这段执行 sql 查询的代码,它应该只返回一列 BIN_NUMBER,因为这是 select 语句中的唯一内容。然而,当我将结果 emptybins 分配给数据网格时,它显示了 BINS 表中最初的所有列。有没有办法只返回 select 语句中的列,这样我就不必手动隐藏其他列?

我知道如果我使用 LINQ 构建查询我可以做到这一点,但我特别询问有关使用此函数的问题。 (dc 是来自 LINQ to SQL 类的 DataContext)

 var emptyBins = dc.ExecuteQuery<BIN>(
     @"SELECT BINS.BIN_NUMBER
       FROM BINS LEFT JOIN 
            INVENTORY_ACTIVE ON BINS.BIN_NUMBER = INVENTORY_ACTIVE.BIN_NUMBER
       WHERE (((BINS.BIN_TYPE)={0}) AND 
             ((INVENTORY_ACTIVE.BIN_NUMBER) Is Null))
       ORDER BY BINS.BIN_NUMBER;", "INVENTORY");

if (dc.DatabaseExists()) MainGrid.ItemsSource = emptyBins;

最佳答案

绑定(bind)到对象的数据使用类型的组件模型 - 在本例中为 BIN 。您只填充 一列这一事实无关紧要 - UI 绑定(bind)现在也不会关心。如果您要填充部分对象,请手动设置 UI 而不是依赖自动列生成 - 或者创建一个特定于您的 UI 的类型,其中包含值的字段 - 并使用 ExecuteQuery<ThatType> 。您可能也可以只使用 ExecuteQuery<int>(或任何类型)。

关于c# - 如何只接收某些列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873210/

相关文章:

c# - 如何将 Picture Box 单击事件组合成一个?

c# - 当数据可以包含逗号时在逗号上拆分字符串

asp.net - SQL - 使用 Scope_Identity() 插入 - 获取记录 ID

sql - 有没有办法在 golang 中使用 package database/sql 获取列的类型?

java - 嵌套选择查询结果太慢

javascript - 如何在 Javascript 和 JSF 中使用数据库?

c# - 在C#中使用Lambda确定非相等属性值

c# - 无法通过控制台应用程序插入数据库

mysql - 在 Sql 查询中设置多个参数值

c# - 决定选择何种 SQL 查询的设计模式