这对
用户来说非常简单。
他们从组合框中选择零件类型和制造商,并在文本框中搜索零件代码。单击"搜索",结果将在数据网格视图中返回。
法典:
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;
}
访问器代码:
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>();
}
"搞砸"的是结果:
- 标识:正确
- Mfr:是其表中的 ID,而不是名称
- 代码:正确
- 描述:正确
- 价格:正确
- 日期:正确
- 制造商:我不知道为什么甚至在这里,它的结果是"PXDB。Tbl制造商
首先,PXDB.TblManufacturers
似乎是从tbl水龙头到tblManufactureres的关系。 Mfr
似乎是您的水龙头表中引用制造商的 foreignKey 值。
您可以尝试创建一个匿名类型,仅保存所需的数据。在选择子句中,选择您的数据以及任何关系数据。
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();
}
添加另一个类以保存要显示的数据
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(..)
可能不再退回 tbl水龙头类型的物品!相反,我创建了一个新类。这个包含应该显示的所有数据!