ORA-01756: строка в кавычках неправильно завершена - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть эта ошибка, и я примерно знаю, где она находится, но не знаю, как ее исправить.

Сообщение об ошибке:

ORA-01756: строка в кавычках неправильно завершена

"INSERT INTO Patients1 VALUES ('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 + "')";

Я думаю, что моя ошибка исходит из самого первого ввода (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));

Любая помощь здесь будет оценена

Ответы [ 2 ]

6 голосов
/ 14 декабря 2011

Похоже, у вас нет доступа к свойству .text ввода.Кроме того, вы не открыли ни одной кавычки для первого элемента в списке VALUES:

VALUES (" + TxtPatientId +"'

Должно быть:

VALUES ('" + TxtPatientId.text +"'

Вы не избежали одинарных кавычек в другихпараметры.У O'Neill есть кавычка, которая разбивает остальную часть оператора.

Информацию об использовании связанных параметров вместо объединенных строк для построения вашего запроса см. В ответе @vc 74.

5 голосов
/ 14 декабря 2011

Вам нужно избежать одиночной кавычки в O'Neill, удвоив ее, или использовать параметры связывания вместо жестко закодированных значений в вашем запросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...