数据库未使用数据集更新

时间:2018-09-06 14:16:57

标签: c# sql-server ado.net dataset dataadapter

所以,我的问题是我的数据集中的数据没有更新回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);
        }
    }

0 个答案:

没有答案