我对 ADO.NET 服务有一个非常简单的练习:将 Product 列表放入列表框中,当列表框中的选择发生更改时,在两个文本框中显示 UnitPrice 和 UnitInStock。然后更改文本框中的数据并保存更改。
这是客户端的所有代码:
namespace TestApp
{
public partial class Form1 : Form
{
NorthwindDataContext ctx = new NorthwindDataContext(new Uri("http://localhost:3540/Northwind.svc/"));
public Form1()
{
InitializeComponent();
var q = from p in ctx.Products
select p;
listBox1.DataSource = q.ToList();
listBox1.DisplayMember = "ProductName";
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var p = listBox1.SelectedItem as Product;
textBox1.Text = p.UnitPrice.ToString();
textBox2.Text = p.UnitsInStock.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
var p = listBox1.SelectedItem as Product;
p.UnitPrice = Decimal.Parse(textBox1.Text);
p.UnitsInStock = short.Parse(textBox2.Text);
try
{
//ctx.AttachTo("Products", p);
//ctx.BeginSaveChanges();
ctx.UpdateObject(p);
ctx.SaveChanges(SaveChangesOptions.None);
}
catch (Exception ex)
{
label3.Text = ex.Message;
}
}
}
}
ADO.NET 服务很好,它的权限设置为:
config.SetEntitySetAccessRule("*", EntitySetRights.All);
当我点击保存按钮时,我收到错误消息:ex.Message = "处理此请求时发生错误。"
不知道为什么。请帮忙。