1. Инсталлируем Connector/Net.
2. В Visual Studio 2010 создаем ADO.NET Entity Data Model и импортируем пару таблиц из базы (например Joomla VirtueMart):
пишем код:
using (VirtueMartContext db = new VirtueMartContext()) { jos_vm_product product = productListControl.SelectedProduct; if (product != null) { db.Attach(product); jos_vm_product_type_1 t1 = product.ProductType1; //тут всё нормально } else { jos_vm_category category = productListControl.SelectedCategory; if (category != null) { var products = from p in db.jos_vm_products join r in db.jos_vm_product_category_xrefs on p.product_id equals r.product_id where r.category_id == category.category_id && p.product_publish == "Y" select p; foreach (jos_vm_product p in products) { jos_vm_product_type_1 t1 = product.ProductType1; //привет, приехали... //There is already an open DataReader associated with this Command... } } else { MessageBox.Show("Select product or category."); } } db.SaveChanges(); }
Иными словами, если мы пишем под .NET, то надо использовать MS SQL Server, иначе definitely problems.
если сделать так, то все работает:
if (category != null) { jos_vm_product[] products; { products = (from p in db.jos_vm_products join r in db.jos_vm_product_category_xrefs on p.product_id equals r.product_id where r.category_id == category.category_id && p.product_publish == "Y" select p).ToArray(); } foreach (jos_vm_product p in products) { jos_vm_product_type_1 t1 = product.ProductType1; //теперь всё ок } }