ADO.NET服务更新错误

时间:2009-09-22 15:14:17

标签: wcf-data-services

我对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 =“处理此请求时出错。”

不确定原因。请帮忙。

2 个答案:

答案 0 :(得分:0)

请在您的服务上打开UserVerboseErrors

config.UseVerboseErrors = true;

覆盖方法handleexception

会很有帮助
protected override void HandleException(HandleExceptionArgs args)

完成后,请告诉我们错误是什么。

答案 1 :(得分:0)

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