首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridView不使用LINQ显示值

DataGridView不使用LINQ显示值
EN

Stack Overflow用户
提问于 2012-09-29 18:43:55
回答 1查看 364关注 0票数 1

它对用户来说非常简单。

它们从ComboBox中选择部件类型、制造商,并在文本框中搜索部件代码。单击“搜索”,结果将在DataGridView中返回。

代码:

代码语言:javascript
复制
var mType = CmbType.SelectedItem.ToString();
var mManufacturer = CmbMfr.SelectedValue.ToString();
var mCode = Convert.ToString(TxtProductCode.Text);

switch (mType)
{
    case "Faucets":
        var faucets = Resources.Accessor.SearchFaucets(mManufacturer, mCode);
        DgInventory.DataSource = faucets;
        break;
    case "Parts":
        var parts = Resources.Accessor.SearchParts(mManufacturer, mCode);
        DgInventory.DataSource = parts;
        break;
}

访问者代码:

代码语言:javascript
复制
public static List<TblFaucets> SearchFaucets(string mId, string mCode)
{
    var dataConnect = new PxLinqSqlDataContext();

    return (from f in dataConnect.GetTable<TblFaucets>()
            where (f.Mfr == Convert.ToInt32(mId))
            where (f.Code == mCode)
            select f).ToList<TblFaucets>();
    }

“混乱”的结果是:

  • ID:正确
  • Mfr:是其表中的ID,而不是名称
  • 代码:正确
  • 描述:正确
  • 价格:正确
  • 日期:正确
  • 制造商:我不知道这是为什么,结果是"PXDB.TblManufacturers“
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-29 19:28:17

首先,PXDB.TblManufacturers似乎是从tblFaucets到tblManufactureres的relationMfr似乎是水龙头表中引用制造商的foreignKey值。

您可以尝试创建一个匿名类型的,该类型只保存想要保存的数据。在select子句中选择数据以及任何关系数据。

代码语言:javascript
复制
public static List<DisplayFaucet> SearchFaucets(string mId, string mCode)
{
    var dataConnect = new PxLinqSqlDataContext();

    return (from f in dataConnect.GetTable<TblFaucets>()
        where (f.Mfr == Convert.ToInt32(mId))
        where (f.Code == mCode)
        select new DisplayFaucet () {                              // create anonymous object 
                  ID = f.ID,                      // only holding the data you want to
                  Manufacturer = Manufacturer.Name,  // assuming there is property Name within your manufacturer table?!
                  Code = f.Code,
                  Description = f.Description,
                  Price = f.Price,
                  Date = f.Date
               }).ToList();
}

添加另一个类来保存要显示的数据。

代码语言:javascript
复制
public class DisplayFaucet
{
    public int ID { get; set; }
    public string Manufacturer { get; set; }
    public string Code { get; set; } // check type
    public string Description { get; set; }
    public doublePrice{ get; set; } // check type
    public DaetTime Date { get; set; } // check type
}

请注意,SearchFaucets(..)可能不再返回tblFaucet类型的项!相反,我创建了一个新类。这个包含所有应该显示的数据!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12655448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档