0

我对 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 = "处理此请求时发生错误。"

不知道为什么。请帮忙。

4

2 回答 2

0

请在您的服务上打开 UserVerboseErrors

config.UseVerboseErrors = true;

覆盖方法handleexception会很有帮助

protected override void HandleException(HandleExceptionArgs args)

完成后,让我们知道错误是什么。

于 2009-09-22T15:25:45.893 回答
0

这是针对 Silverlight 客户端还是 WinForms?为什么从使用 BeginSaveChanges() 切换到 SaveChanges()?

于 2009-10-06T23:31:03.250 回答