我有这个错误,我大致知道它在哪里,但不知道如何纠正它。
错误讯息:
ORA-01756:引用字符串未正确终止
“插入患者1的价值观('System.Windows.Forms.TextBox,Text:0001','M','25 -AUG-1991','Aaron','R','O'Neill',' 6英尺','11'','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));
任何帮助都将不胜感激
答案 0 :(得分:6)
看起来您没有访问输入的.text
属性。此外,您尚未为VALUES
列表中的第一项打开单引号:
VALUES (" + TxtPatientId +"'
应该是:
VALUES ('" + TxtPatientId.text +"'
您没有在其他参数中转义单引号。 O'Neill
的引用打破了声明的其余部分。
有关使用绑定参数而不是连接字符串来构建查询的信息,请参阅@vc 74的答案。
答案 1 :(得分:5)
你需要通过加倍来逃避奥尼尔的单引号 或使用bind parameters代替查询中的硬编码值