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

use*_*326 1 sql oracle visual-studio

我有这个错误,我大致知道它在哪里,但不知道如何纠正它.

错误信息:

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

"插入患者1的价值观('System.Windows.Forms.TextBox,Text: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 + "')";
Run Code Online (Sandbox Code Playgroud)

我认为我的错误来自第一个输入(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));
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*ski 6

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

VALUES (" + TxtPatientId +"'
Run Code Online (Sandbox Code Playgroud)

应该:

VALUES ('" + TxtPatientId.text +"'
Run Code Online (Sandbox Code Playgroud)

您没有在其他参数中转义单引号. O'Neill有一个引用打破了声明的其余部分.

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


vc *_* 74 5

您需要通过将其加倍或在查询中使用绑定参数而不是硬编码值来逃避O'Neill中的单引号