У меня есть очень простое упражнение для службы 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 = "Произошла ошибка при обработке этого запроса."
Не знаю почему. пожалуйста, помогите.