powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вставка данных в поле типа uniqueidentifier
6 сообщений из 6, страница 1 из 1
вставка данных в поле типа uniqueidentifier
    #39452835
gean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В C# используем DataGridView и BindingNavigator для работы с MS SQL. В бд имеются таблицы с полями типа uniqueidentifier и по которым создан первичный ключ. При вставке данных в такие таблицы через DataGrid получаю сообщение:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Исключение в DataGridView:



System.Data.NoNullAllowedException: В столбце "NumID" не допускаются значения равные nulls.

   в System.Data.DataColumn.CheckNullable(DataRow row)

   в System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)

   в System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException)

   в System.Data.DataTable.InsertRow(DataRow row, Int64 proposedID, Int32 pos, Boolean fireEvent)

   в System.Data.DataView.FinishAddNew(Boolean success)

   в System.Data.DataRowView.EndEdit()

   в System.Windows.Forms.CurrencyManager.EndCurrentEdit()

   в System.Windows.Forms.DataGridView.DataGridViewDataConnection.OnRowValidating(DataGridViewCellCancelEventArgs e)



Для замены этого окна по умолчанию обработайте событие DataError.



Поля таблиц типа uniqueidentifier не отображаю в DataGridView. Как инициализировать значение в колонке "NumID" (в данном случае), чтобы проверка прошла корректно? Или возможны другие подходы - разрешить содержать в "NumID" в DataGridView значение NULL, но при вставке данных использовать значение GUID?
...
Рейтинг: 0 / 0
вставка данных в поле типа uniqueidentifier
    #39453048
stomsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gean,

Так у тебя поле NumID вообще значениями не заполняется?
Почему не используешь Guid.NewGuid() ?
...
Рейтинг: 0 / 0
вставка данных в поле типа uniqueidentifier
    #39453094
gean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stomskyТак у тебя поле NumID вообще значениями не заполняется?
Почему не используешь Guid.NewGuid() ?

Не заполняется. Затруднения возникают с определением события в котором нужно заполнять поле NumID.
...
Рейтинг: 0 / 0
вставка данных в поле типа uniqueidentifier
    #39453184
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажите схему таблички (Create скрипт)
...
Рейтинг: 0 / 0
вставка данных в поле типа uniqueidentifier
    #39453200
gean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE [dbo].[Num](
	[NumID] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
	[code] [nvarchar](50) NOT NULL,
	[Description] [nvarchar](255) NOT NULL,
	[PrintDescription] [nvarchar](255) NOT NULL,
 CONSTRAINT [PK_Num] PRIMARY KEY CLUSTERED 
(
	[NumID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Num] ADD  CONSTRAINT [DF_Num_NumID]  DEFAULT (newid()) FOR [NumID]
GO
...
Рейтинг: 0 / 0
вставка данных в поле типа uniqueidentifier
    #39453386
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[NumID] [uniqueidentifier] ROWGUIDCOL NOT NULL DEFAULT newid(),
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вставка данных в поле типа uniqueidentifier
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]