Итак, проблема в том, что данные из моего набора данных не обновляются до SQL-сервера обратно.
Ниже приведена функция обновления года лицензии (лет) и стоимости (стоимости) для конкретного элемента лицензии (id) на основе входных параметров.
Первоначально я получаю фактическую дату истечения срока действия и добавляю количество лет из входного параметра лет, а затем обновляю соответствующую лицензию с обновленным годом и стоимостью.
Я создаю адаптер, чтобы выбрать все лицензии и заполнить их набором данных, а затем обновить их с помощью команды обновления соответствующим образом.
Но в конце данные не обновляются.
Есть идеи?
public void UpdateLicense(int id,int years,double cost)
{
try{
SqlConnection conn = DBConnection.GetConnection();
conn.Open();
string PurDate="";
SqlCommand sqlGetDate = new SqlCommand("select expiration_date from License where id ="+id, conn);
SqlDataReader reader = sqlGetDate.ExecuteReader();
while (reader.Read())
{
if (!reader.IsDBNull(0))
{
PurDate = (string)reader["EXPIRATION_DATE"];
}
}
reader.Close();
string updatedYear = DateTime.ParseExact(PurDate, "dd/MM/yyyy", CultureInfo.InvariantCulture).AddYears(years).ToString("dd/MM/yyyy");
string sqlLicIns = "select * from License";
SqlDataAdapter adapter = new SqlDataAdapter(sqlLicIns, conn);
DataSet ds = new DataSet("License");
adapter.Fill(ds, "License");
SqlCommand sqlLicUpd = new SqlCommand("update License set cost =" + cost + ", expiration_date='" + updatedYear + "' where id =" + id, conn);
adapter.UpdateCommand = sqlLicUpd;
adapter.Update(ds, "License");
adapter.Dispose();
sqlLicUpd.Dispose();
conn.Close();
}
catch(Exception ex){
Console.WriteLine(ex.Message);
}
}