我正在使用C#开发桌面应用程序。我正在使用LINQ从存储过程中恢复数据库中的数据。我执行下一个查询:
ALTER proc [dbo].[sp_SelectRecords]
@idproduct nchar(10)
as
select Id_Product,Description,Sell_Price from Tbl_Products
where Id_Product=@idproduct
此查询从我的应用程序接收参数并返回一条我想在ListView上显示的记录。
linqDataContext _linq = new linq_DataContext();
private void txtParam1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
var res = _linq.sp_SelectRecords(txtParam1.Text);
//Here I want to add result of SPROC to ListView
listView1.Items.Add(res);//I though that this could work like 'DataGridView.DataSource=res'
//But DataGridView display records of query at moment
//And I want add records every time that executes a query
}
}
答案 0 :(得分:1)
感谢您回答'alancnet'!但是在把它旋转到我头上后,我试试这个,我明白了!
var res = _linq.sp_SelectRecords(txtParam1.Text);
foreach (var order in res)
{
ListViewItem lvi = new ListViewItem(new[] { order.Cod_Prod, order.Description, order.Price.ToString() });
ListView1.Items.Add(lvi);
}
答案 1 :(得分:0)
将项目添加到ListView
时,它必须是字符串或ListViewItem
。如果添加ListViewItem
,您实际上可以使用它存储对象的引用:
myListView.Items.Add(new ListViewItem(MyObject.Text)
{
Tag = MyObject
});
使用此方法,您可以像上面一样将单个记录添加到ListView
,或者像这样添加一系列记录:
myListView.Items.AddRange(
(
items.Select(
item => new ListViewItem(item.Text)
{
Tag = item
}
)
).ToArray()
);
如果要访问所选对象,可以像这样检索对它的引用:
myListView.SelectedItems[0].Tag