CREATE PROCEDURE [dbo].[USP_StudentInformation]
@S_Name VARCHAR(50)
,@S_Address VARCHAR(500)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Date VARCHAR(50)
SET @Date = GETDATE()
IF EXISTS (
SELECT *
FROM TB_StdFunction
WHERE S_Name = @S_Name
AND S_Address = @S_Address
)
BEGIN
UPDATE TB_StdFunction
SET S_Name = @S_Name
,S_Address = @S_Address
,ModifiedDate = @Date
WHERE S_Name = @S_Name
AND S_Address = @S_Address
SELECT *
FROM TB_StdFunction
END
ELSE
BEGIN
INSERT INTO TB_StdFunction (
S_Name
,S_Address
,CreatedDate
)
VALUES (
@S_Name
,@S_Address
,@date
)
SELECT *
FROM TB_StdFunction
END
END
<ч> Table Name : TB_StdFunction
S_No INT PRIMARY KEY AUTO_INCREMENT
S_Name nvarchar(50)
S_Address nvarchar(500)
CreatedDate nvarchar(50)
ModifiedDate nvarchar(50)
Если ваш код странным образом является одношаговым, это может иногда быть вызвано просто сломанным файлом pdb. «Перестроить все» в вашем коде будет регенерировать его с нуля и вылечить любые такие сбои.
Еще одна вещь, о которой следует помнить, - это то, что остановка одного потока в отладчике может вызвать различные необычные временные интервалы, которые вы не увидите в сборка выпуска. Например:
Последовательный порт всегда будет продолжать работать (на уровне оборудования / драйвера), пока вы остановились на точке останова - когда вы в следующий раз попытаетесь выполнить пошаговое выполнение кода, он может получить внезапный огромный пакет данных. С асинхронными обратными вызовами это может быть «интересно».
Остановка одного потока нарушает нормальное временное разделение, так что синхронизация потока с потоком может быть нарушена.
Любой конструктор может использоваться для статического или динамического распределения. Вы не можете заставить пользователя объекта использовать конкретный конструктор, каким бы способом он не выделял объект.
Я не думаю, что вы можете сказать это в конструкторе.
Не знаю, поможет ли это, но вы можете предотвратить статическое создание объекта, сделав деструктор закрытым. Вам также понадобится общедоступное «Удалить»