如何使用 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();
}
}
此外,我还创建了一个带有帐户创建的用户登录名,其中我在表中的代码(更新/删除功能(运行良好。唯一的区别是,我的登录表上有三个字符串,而在我的学生表中,我有很多字符串和一个日期时间。
很可能更新语句的选择部分没有找到任何记录: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 中进行,以便您将看到错误。