我有一个详细信息视图,我用它来用值填充表格。它现在正在正确插入值,但我现在需要检查用户是否正在尝试输入会干扰先前记录的新记录。
如果用户输入了 2012 年 12 月 12 日的新事件,但该用户已经输入了 2012 年 12 月 12 日的记录,那么我希望抛出错误并且无法插入记录。
仅检查时间的唯一记录是行不通的,因为不同的用户可以创建一个偶数 2012-12-12 并且这是可以接受的。只有同一个用户不能创建相同的事件日期。所以我知道我需要检查表中的两个字段,但我不确定如何检查我的代码。
例如:
用户 1 新事件 2012-12-12 ----- 好的
用户 2 新活动 2012-12-12 ----- 好的
用户 3 新活动 2012-12-12 ----- 好的
用户 2 新事件 2012-12-12 ----- 应该引发错误并且不允许创建该记录。
用户 3 新活动 2012-10-12 ----- 好的
已编辑
目前我正在使用它来更新表格:
public void UpdateForm(Int64 requestid,
Decimal empid,
String leave,
DateTime startdate,
DateTime enddate,
String starttime,
String endtime,
String standby,
String status,
String rsn,
String remarks,
String approver,
String with,
String reqleave,
String FIRSTNAME,
String LASTNAME)
{
var CurrUser = "a03 ";
Account.Login uusr = new Account.Login();
CurrUser = uusr.User.Identity.Name.ToString().ToUpper();
var sql = "update TIME.request set empid=@empid, leave=@leave, with=@with, startdate=@startdate, reqleave=@reqleave, enddate=@enddate, starttime=@starttime, endtime=@endtime, standby=@standby, status=@status, rsn=@rsn, remarks=@remarks, approver=@approver where requestid = @requestid";
using (iDB2Connection conn = new iDB2Connection(GetConnectionString()))
{
conn.Open();
using (iDB2Command cmd = new iDB2Command(sql, conn))
{
cmd.DeriveParameters();
cmd.Parameters["@requestid"].Value = requestid;
cmd.Parameters["@empid"].Value = empid;
cmd.Parameters["@leave"].Value = leave;
cmd.Parameters["@startdate"].Value = startdate;
cmd.Parameters["@enddate"].Value = enddate;
cmd.Parameters["@starttime"].Value = starttime;
cmd.Parameters["@endtime"].Value = endtime;
cmd.Parameters["@standby"].Value = standby;
cmd.Parameters["@status"].Value = status;
cmd.Parameters["@rsn"].Value = rsn;
cmd.Parameters["@remarks"].Value = remarks;
cmd.Parameters["@approver"].Value = approver;
cmd.Parameters["@reqleave"].Value = reqleave;
cmd.Parameters["@with"].Value = with;
cmd.ExecuteNonQuery();
}
}
}