Ошибка обновления службы ADO.NET - PullRequest
0 голосов
/ 22 сентября 2009

У меня есть очень простое упражнение для службы ADO.NET: поместите список «Продукт» в поле списка, когда выбор изменится в поле списка, отобразите 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 голосов
/ 07 октября 2009

Это для клиента Silverlight или WinForms? Почему вы переключились с использования BeginSaveChanges () на SaveChanges ()?

0 голосов
/ 22 сентября 2009

пожалуйста, на вашем сервисе включите UserVerboseErrors

config.UseVerboseErrors = true;

И было бы полезно переопределить метод handleException

protected override void HandleException(HandleExceptionArgs args)

После того, как вы это сделаете, сообщите нам об ошибке.

...