चलिए इसे इस तरह से प्राप्त करके शुरू करते हैं: मैं एक एमएस एक्सेस डीबी का उपयोग कर फंस गया हूं और मैं इसे बदल नहीं सकता।डैपर और एमएस एक्सेस - काम पढ़ें, लिखें
यह ठीक काम करता है:
using (OleDbConnection conn = ConnectionHelper.GetConnection())
{
conn.Open();
var results = conn.Query<string>(
"select FirstName from Students where LastName = @lastName",
new { lastName= "Smith" }
);
conn.Close();
}
यह ठीक काम करता है:
using (OleDbConnection conn = ConnectionHelper.GetConnection())
{
OleDbCommand cmd = new OleDbCommand(
"update Students set FirstName = @firstName, City = @city where LastName = @lastName",
conn
);
cmd.Parameters.AddWithValue("firstName", "John");
cmd.Parameters.AddWithValue("city", "SomeCity");
cmd.Parameters.AddWithValue("lastName", "Smith");
conn.Open();
var result = cmd.ExecuteNonQuery();
conn.Close();
}
यह नहीं करता है ... यह त्रुटि के बिना निष्पादित करता है, लेकिन यह "SomeCity" DB में के रूप में प्रथम सेट करता है और शहर "जॉन" के रूप में:
using (OleDbConnection conn = ConnectionHelper.GetConnection())
{
conn.Open();
var results = conn.Query<string>(
"update Students set FirstName = @firstName, City = @city where LastName = @lastName",
new { firstName = "John", city = "SomeCity", lastName = "Smith" }
);
conn.Close();
}
कोई विचार? अगर मैं DynamicParameters का उपयोग
संपादित नीचे
डैप्पर काम करता है:
नीचे व्यवसायिक के SqlMapper से CreateParamInfoGenerator प्रतिनिधि है:
using (OleDbConnection conn = ConnectionHelper.GetConnection())
{
DynamicParameters parameters = new DynamicParameters();
parameters.Add("firstName", "John");
parameters.Add("city", "SomeCity");
parameters.Add("lastName", "Smith");
conn.Open();
var result = conn.Query<string>(
"update Students set FirstName = @firstName, City = @city where LastName = @lastName",
parameters
);
conn.Close();
}
कि अजीब है .. मैं repro करने के लिए ... –
नोट की कोशिश करने की आवश्यकता होगी: बस एसक्यूएल के साथ पुन: पेश करने की कोशिश की 2008 एक्सप्रेस और यह ठीक काम करता है ... –
मेरे द्वारा की गई यह एसक्यूएल सर्वर के साथ सफलतापूर्वक ... इसलिए मुझे लगता है कि यह केवल एमएस एक्सेस के साथ है – Trev