Запишите пустую строку (или удалите поле) с помощью ADODB.recordset в базу данных Access.

У меня есть этот код:

ds("Fecha comienzo").Value = TextGridEditar.Text

Где ds — это ADODB.RecordSet, а TextGridEditar — это TextBox в VB.NET. Я использую RecordSet для записи в базу данных Access.

Если у меня есть текст в TextBox, он отлично работает. Но если ничего нет, выбрасывается исключение. Я не могу сделать это:

ds("Fecha comienzo").Value = ""

Как я могу написать пустую строку с помощью RecordSet? Или как я могу удалить это единственное значение (не всю строку). Я хочу, чтобы мне разрешили ничего не помещать (не NULL) в это поле или стереть значение этого поля.


РЕДАКТИРОВАТЬ: В VB (не .NET) этот код работает с той же базой данных Access, даже с пустыми строками:

ds.Edit
ds("fecha comienzo") = textgrid

Где ds — тип dynaset.


person Xithias    schedule 19.12.2012    source источник
comment
Я думаю, вам нужно удалить поле constraints в базе данных (Ms-Access). (Что-то вроде разрешения строки нулевой длины.)   -  person kv-prajapati    schedule 19.12.2012
comment
@AVD Я так не думаю. Смотрите мою правку. Код работал на VB с dynaset.   -  person Xithias    schedule 19.12.2012
comment
Затем создайте набор записей Dynaset в VB.NET.   -  person kv-prajapati    schedule 19.12.2012
comment
@AVD Я хотел бы решить это таким образом, мой код является частью более крупного проекта, а в остальной части проекта они используют ADODB.RecordSet.   -  person Xithias    schedule 19.12.2012


Ответы (1)


Решено. Это ответ:

 If (TextGridEditar.Text.Equals("")) Then
     ds("Fecha comienzo").Value = System.DBNull.Value
 Else
     ds("Fecha comienzo").Value = TextGridEditar.Text
 End If

System.DBNull.Value вставляет в таблицу Access пустую строку, а не значение NULL.

person Xithias    schedule 19.12.2012