ORA-01756:引用的字符串没有正确终止

问题描述:

我有这个错误,我大致知道它在哪里,但不知道如何纠正它。ORA-01756:引用的字符串没有正确终止

错误消息:

ORA-01756:引用字符串没有正确结束

“INSERT INTO Patients1 VALUES( 'System.Windows.Forms.TextBox,文本:0001', 'M','25 - 'AUG-1991','Aaron','R','O'Neill','6ft','11st','0664534334','0876543213','0001','PAT','有心脏病' )”

这里是我的代码:

string sql = "INSERT INTO Patients1 VALUES (" + TxtPatientId +"' ,'" + TxtGender.Text + "', '" + TxtDob.Text + "' , '" + TxtFName.Text + "' , '" + 
       TxtMName.Text + "' , '" + TxtLName.Text + "' , '" + TxtHeight.Text + "' , '" + TxtWeight.Text + "' , '" + TxtHomePh.Text + 
       "' , '" + TxtMobPhone.Text + "' , '" + TxtDocId.Text + "' , '" + TxtViewType.Text + "', '" + 
       TxtPDetails.Text + "')"; 

我认为我的错误来自第一个输入(PatientId)。

我的数据库表看起来像这样:

CREATE TABLE Patient1 
    (Patient_id NUMBER(6) NOT NULL, 
    GENDER VARCHAR2(1) NOT NULL, 
    DATE_OF_BIRTH DATE, 
    PATIENT_FIRST_NAME VARCHAR2(9) NOT NULL, 
    PATIENT_MIDDLE_INITIAL VARCHAR2(1), 
    PATIENT_SURNAME VARCHAR2(9) NOT NULL, 
    HEIGHT NUMBER(3,2), 
    WEIGHT NUMBER(5,2), 
    HOME_PHONE NUMBER(10) NOT NULL, 
    MOBILE_PHONE NUMBER(10) NOT NULL, 
    DOCTOR_ID NUMBER(6) NOT NULL, 
    VIEWTYPE VARCHAR2(3) DEFAULT 'PAT', 
    OTHER_PATIENT_DETAILS VARCHAR2(50), 
    CONSTRAINT patients_pk PRIMARY KEY(Patient_id)); 

这里任何帮助,将不胜感激

看起来您并未访问输入的.text属性。此外,你还没有打开一个单引号在VALUES列表中的第一项:

VALUES (" + TxtPatientId +"' 

应该是:

VALUES ('" + TxtPatientId.text +"' 

你也没能逃脱在其他参数单引号。 O'Neill有一个引用来打破陈述的其余部分。

有关使用绑定参数而不是连接字符串来构建查询的信息,请参阅@vc 74的答案。

+0

谢谢你,我知道那是在那个地区。凝视代码太久会让你生气。当我接受这个答案时,我会接受这个答案。 – user1081326 2011-12-14 14:53:30

您需要通过 加倍它逃脱奥尼尔的单引号或使用bind parameters,而不是硬编码值的在您的查询中