gpt4 book ai didi

c# - 如何在 C# 中从 Oracle 数据库中删除一行?

转载 作者:行者123 更新时间:2023-11-30 13:38:22 25 4
gpt4 key购买 nike

当我想根据 id_curse 删除整行时遇到问题。这是我的代码,这是我得到的错误:

An unhandled exception of type 'Oracle.DataAccess.Client.OracleException' occurred in Oracle.DataAccess.dll.

附加信息:

External component has thrown an exception.

你能帮我解决这个问题吗?我认为来自 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 Injection和解析问题(带引号、小数点和无法识别的日期的字符串)

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 是文本数据库字段吗? (您在值周围加上引号,所以我假设这是一个文本字段)

关于c# - 如何在 C# 中从 Oracle 数据库中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com