我正在尝试从一个名为suspension的数据库插入到Animals数据库中名为Notification的表中.我的存储过程是这样的:
ALTER PROCEDURE [dbo].[spCreateNotification] -- Add the parameters for the stored procedure here @notRecID int,@notName nvarchar(50),@notRecStatus nvarchar(1),@notAdded smalldatetime,@notByWho int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here INSERT INTO Animals.dbo.Notification ( NotRecID,NotName,NotRecStatus,NotAdded,NotByWho ) values (@notRecID,@notName,@notRecStatus,@notAdded,@notByWho); END
空插入是为了补充一个否则不会被填充的列,我尝试了不同的方法,比如在表名后使用列的名称,然后只在值中指出我得到的字段.我知道这不是存储过程的问题,因为我是从sql server管理工作室执行的,它引入了参数.然后我猜我在调用存储过程时问题必须在存储库中:
public void createNotification(Notification not) { try { DB.spCreateNotification(not.NotRecID,not.NotName,not.NotRecStatus,(DateTime)not.NotAdded,(int)not.NotByWho); } catch { return; } }
public void createNotifications(IList<TemporalNotification> notifications) { foreach (var TNot in notifications) { var ts = RepositoryService._suspension.getTemporalSuspensionForNotificationID(TNot.TNotRecID); Notification notification = new Notification(); if (ts.Count != 0) { notification.NotName = TNot.TNotName; notification.NotRecID = TNot.TNotRecID; notification.NotRecStatus = TNot.TNotRecStatus; notification.NotAdded = TNot.TNotAdded; notification.NotByWho = TNot.TNotByWho; if (TNot.TNottoReplace != 0) { var suspensions = RepositoryService._suspension.getSuspensionsAttached((int)TNot.TNottoReplace); foreach (var sus in suspensions) { sus.CtsEndDate = TNot.TNotAdded; sus.CtsEndNotRecID = TNot.TNotRecID; DB.spModifySuspensionWhenNotificationIsReplaced((int)TNot.TNottoReplace,(int)sus.CtsEndNotRecID,(DateTime) sus.CtsEndDate); } DB.spReplaceNotification((int)TNot.TNottoReplace,DateTime.Now); createNotification(notification); } else { createNotification(notification); } } } deleteTemporalNotifications(notifications); }
它不会记录数据库中的值.我一直在调试并对此感到生气,因为它在我手动执行时起作用,但在我的应用程序中自动化proccess时则不行.有人看到我的代码有什么问题吗?
谢谢
编辑:添加更多代码.它仍然无法改变,我的意思是,如果我执行它,程序是有效的,所以我不知道可能是什么错误.事实上,我没有得到任何错误.可能是一个表中的写入问题,而不是存储过程的数据库中的问题?
解决方法
我会指定你的列名,而DONT则根据该列包含NULL.让sql Server处理它.
INSERT INTO Animals.dbo.Notification ( RecID,[Name],RecStatus,Added,ByWho ) values (@notRecID,@notByWho);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。