使用WCF和LINQ to SQL调用参数化存储过程

时间:2016-01-12 11:13:00

标签: c# wcf stored-procedures linq-to-sql silverlight-5.0

如何从usp_Get_Products服务中调用参数化存储过程WCF?我试过调用它没有任何参数它工作正常但我不知道如何从我的textbox文件传递About.xaml.cs值作为参数。

Service.svc.cs文件

public List<Product> GetProducts()
{
  ProductDataClassDataContext db = new ProductDataClassDataContext();
  var products = db.usp_Get_Products();
  return products.ToList();
}

观看/关于.xaml.cs文件

private void OnSearchProductClick(object sender, RoutedEventArgs e)
{
  ServiceReference1.Service1Client webService = new ServiceReference1.Service1Client();
  webService.GetProductsCompleted += new EventHandler<GetProductsCompletedEventArgs>(webService_GetProductsCompleted);
  webService.GetProductsAsync();
  txtblcName.Text = txtName.Text;   //Send this as parameter to usp_Get_Products
}

public void webService_GetProductsCompleted(object sender, ServiceReference1.GetProductsCompletedEventArgs e)
{
  ProductGrid.ItemsSource = e.Result; //Binding Datagrid 
}

如何在调用存储过程时从我的xaml.cs文件中发送txtName.Text作为参数?我知道我缺少一些概念,我是WCF的新手,而且我从未参与过Silverlight ..

1 个答案:

答案 0 :(得分:0)

您确定存储过程是否接受参数? 你也可以发布你的ProductDataClassDataContext。 理想情况下,您应修改服务合同以接受参数, 万一你不想这样做 您可以在产品列表中进行过滤,例如

    var products = await webService.GetProductsAsync();
    var filteredProduct = products.Where(item=> item.Name == txtName.Text);