所以,我的问题是我的数据集中的数据没有更新回SQL Server。
以下是根据输入参数更新特定许可证项目(id)的许可证年(年)和成本(成本)的功能。
最初,我获得实际的到期日期,并从输入参数年中添加年数,然后使用更新的年和成本更新相应的许可证。
我正在创建一个适配器,以选择所有许可证并填充数据集,然后相应地使用update命令对其进行更新。
但是,最后数据没有得到更新。
有什么想法吗?
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);
}
}