如何使用 OOP 在 C# 中更新/删除表上的数据

本文关键字:删除 数据 更新 OOP 何使用 | 更新日期: 2023-09-27 18:18:19

我已经完成了在表上添加数据的工作,它工作正常。我也完成了对我的类的更新和删除功能的编码,但它没有更新表。在我的程序中未发现错误。

这是我的代码:

public void StudentUpdate(string id, string lastname, string firstname, string middlename, string suffix, string age, string gender, string paddress, DateTime birthday)
{
    result.Query = "Update tbl_student set lastname = '" + lastname + "', firstname = '" + firstname + "', middlename = '" + middlename + "', suffix = '" + suffix + "', age = '" + age + "', gender = '" + gender + "', pmt_address = '" + paddress + "', birthday = to_date('" + String.Format("{0:MM/dd/yyyy}", birthday.ToShortDateString()) + "','mm/dd/yyyy') where std_id = '" + id + "'";
    result.Transaction = true;
    result.ExecuteNonQuery();
    StudentCommit();
    result.Close();
}
public void StudentDelete(string id)
{
    result.Query = "Delete from tbl_student where std_id = '" + id + "'";
    result.ExecuteNonQuery();
    StudentCommit();
    result.Close();
}
public void StudentCommit()
{
    if (!result.Commit())
    {
        result.Rollback();
    }
}

此外,我还创建了一个带有帐户创建的用户登录名,其中我在表中的代码(更新/删除功能(运行良好。唯一的区别是,我的登录表上有三个字符串,而在我的学生表中,我有很多字符串和一个日期时间。

如何使用 OOP 在 C# 中更新/删除表上的数据

很可能更新语句的选择部分没有找到任何记录:http://weblogs.asp.net/stevewellens/why-sql-updates-fail-three-reasons

而且,正如其他人指出的那样,像你一样构建字符串会使代码容易受到SQL注入的影响。 如果是内部应用程序或家庭作业,这没什么大不了的,否则您应该使用参数化查询。

我认为是因为这个age = '" + age + "'

应该是age="+age+",

您需要删除报价

因为它是整数

并且在此代码中where std_id = '" + id + "'"

应该是where std_id = " + id;

我认为 id 也是 int,但您将其放在引号内,因为 SQL 中的拼写错误,C# 不知道错误是什么,所以如果您想测试您的代码,请在 SQL 中进行,以便您将看到错误。