Iri*_*ina 3 c# oracle sqlcommand
当我想基于删除整行时,我遇到了问题id_curse.这是我的代码,这是我得到的错误:
Oracle.DataAccess.dll中发生了未处理的"Oracle.DataAccess.Client.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();
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*eve 10
DELETE语法如下
DELETE from CURSE WHERE ID_CURSA = xxxxx
^ no * here
Run Code Online (Sandbox Code Playgroud)
但是你应该使用参数化查询而不是字符串连接.字符串连接导致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();
}
Run Code Online (Sandbox Code Playgroud)
作为旁注,您确定ID_CURSA是文本数据库字段吗?(你在值周围加上引号,所以我假设这是一个文本字段)
| 归档时间: |
|
| 查看次数: |
7674 次 |
| 最近记录: |