Я пытаюсь с помощью C# прочитать данные из файла XML и обновить таблицу SQL с помощью. Но ничего не происходит.
Мой XML выглядит так
<User>
<Table>
<userID>535631</userID>
<Date>2017-12-18</Date>
</Table>
<Table>
<userID>36334</userID>
<Date>2020-02-03</Date>
</Table>
<Table>
<userID>734563</userID>
<Date>2020-02-03</Date>
</Table>
<Table>
<userID>6334</userID>
<Date>2020-02-21</Date>
</Table>
</User>
И что я пытался:
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\\temp\\data\\myData.xml");
XmlNodeList node = doc.SelectNodes("/User/Table");
string source = ConfigurationManager.ConnectionStrings["JBVRM"].ConnectionString;
SqlConnection conn = new SqlConnection(source);
SqlCommand cmd = new SqlCommand();
foreach (XmlNode xn in node)
{
string userID = xn["userID"].InnerText;
string NewDate= xn["Date"].InnerText;
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("UPDATE [dbo].[User] SET Date='"+NewDate+"' WHERE UserID="+ userID , source);
conn.Close();
// Console.WriteLine(userID+" "+Date); // This prints everything very fine.
}
Есть какие-нибудь предложения, что я делаю не так? Я могу напечатать дату и идентификатор пользователя. но моя таблица не обновляется.
РЕШЕНИЕ Благодаря @Magnetron и @ Gnud
using (SqlConnection connection = new SqlConnection(source))
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = "UPDATE [dbo].[User] SET Date=@Date WHERE userID=@userID";
cmd.Parameters.AddWithValue("@Date", xn["Date"].InnerText);
cmd.Parameters.AddWithValue("@userID", xn["userID"].InnerText);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
}
}