如何在c#中删除Oracle数据库中的一行
本文关键字:一行 Oracle 删除 数据库 | 更新日期: 2023-09-27 18:19:06
当我想删除基于id_curse
的整行时,我遇到了一个问题。这是我的代码这是我的错误,我得到:
Oracle.DataAccess.Client类型的未处理异常。
Oracle.DataAccess.dll中出现OracleException。
附加信息:
你能帮我解决这个问题吗?我认为sql命令的代码不是很好。外部组件抛出异常。
private void button3_Click(object sender, EventArgs e)
{
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(provider);
Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand();
conn.Open();
cmd = new Oracle.DataAccess.Client.OracleCommand(" DELETE * from CURSE WHERE ID_CURSA = '" + textBox1.Text + "'", conn);
cmd.ExecuteNonQuery();
}
DELETE语法如下
DELETE from CURSE WHERE ID_CURSA = xxxxx
^ no * here
但是您应该使用参数化查询,而不是字符串连接。字符串连接导致Sql注入和解析问题(带引号、小数和日期的字符串无法识别)
string cmdText = "DELETE from CURSE WHERE ID_CURSA = :ID"
using(OracleConnection conn = new OracleConnection(provider))
using(OracleCommand cmd = new OracleCommand(cmdText, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("ID", textBox1.Text);
cmd.ExecuteNonQuery();
}
作为旁注,您确定ID_CURSA是文本数据库字段吗?(你把引号周围的值,所以我假设这是一个文本字段)