【发布时间】:2012-07-06 07:33:00
【问题描述】:
我一直在研究删除功能,但我无法克服这个错误。
删除失败 ORA-00904 "SYSTEM"."DATA"."DATAROWVIEW": 标识符无效
private void button3_Click(object sender, EventArgs e)
{
string yesNoPrompt = "Are you sure you want to delete this patient?";
const string caption = "";
var result = MessageBox.Show(yesNoPrompt, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
string sql = "DELETE FROM CLIENT WHERE (CLI_LNAME =" + listBox1.SelectedItem.ToString() + ")" ;
try
{
string connectionString = GetConnectionString();
using (OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = connectionString;
connection.Open();
OracleCommand command = new OracleCommand(sql, connection);
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
}
catch (System.Data.OracleClient.OracleException ex)
{
MessageBox.Show("Delete Failed" + ex.Message);
}
}
}
数据库中的表是 CLIENT,我正在尝试按姓氏或 CLI_LNAME 查找特定人员。我认为问题不在于传递的名称,而在于传递的方式。
有什么想法吗?
【问题讨论】:
-
看起来你在
DELETE FROM CLIENT WHERE (CLI_LNAME = '" + listBox1.SelectedItem.ToString() + "')中忘记了一些 ' 现在你的CLI_LNAME似乎是一个字符串类型 -
表中真的有
CLI_NAME列吗?并且名称应该用单引号括起来,这就是为什么使用参数化查询很好 -
就是这样.. 这么简单的事情。我一定很累。谢谢。