Я пытаюсь получить некоторые данные из таблицы SQL в моем наборе данных, используя C #.
В этом случае мне не нужны все столбцы, только несколько конкретных, однако, поскольку я не возвращаю столбец с обязательным значением NOT NULL, копия таблицы вызывает исключение
"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints."
Я уверен, что смогу обойти эту проблему, вернув столбец unNullable в мою таблицу, однако я хочу избежать возврата ненужных данных.
Я использую запрос, который выбрасывает это исключение:
SELECT DeviceSerialNumber, BuildID, LEMSCredentialsID, LEMSSoftwareID, OwnerID, RestagedDate
FROM tblDevice
WHERE (DeviceSerialNumber = @SerialNumber)
Это исключает обязательный столбец "tblLocationID". В действительности этот столбец обязателен только при рассмотрении базы данных в целом, а не когда мне просто нужны сведения о сборке и программном обеспечении для использования в моей форме.
Я пытаюсь использовать этот запрос следующим образом.
private DataTable dtDevice;
dtDevice = taDevice.GetDataByDeviceSN_ForRestage(txtDeviceSerial.Text);
Я заметил, что при просмотре данных предварительного просмотра Visual Studio рисует столбцы, которые не указаны в моем SQL, включая столбец tblLOcationID, однако эти столбцы не заполняются данными.
Можно ли в любом случае использовать эти данные во временной таблице, не импортируя ненулевой аспект столбца? желательно не тянуть через невыбранные столбцы вообще?
Для полноты вот определение (минус определения внешнего ключа) исходной таблицы:
CREATE TABLE [dbo].[tblDevice](
[DeviceSerialNumber] [nvarchar](50) NOT NULL,
[Model] [nvarchar](50) NULL,
[ManufactureDate] [smalldatetime] NULL,
[CleanBootDate] [smalldatetime] NULL,
[BuildID] [int] NULL,
[Notes] [nvarchar](3000) NULL,
[AuditID] [int] NULL,
[LocationID] [int] NOT NULL,
[SimID] [int] NULL,
[LEMSCredentialsID] [int] NULL,
[LEMSSoftwareID] [int] NULL,
[OwnerID] [int] NULL,
[RestagedDate] [smalldatetime] NULL,
[Boxed] [bit] NULL,
CONSTRAINT [PK_tblDevice_1] PRIMARY KEY CLUSTERED
([DeviceSerialNumber] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]