从 DateTimePicker 检查重复的年份值
Check for duplicated year value from DateTimePicker
我正在尝试检查其中一个字段是日期的重复记录……TxtNum
是文本框,DtDate
是 DateTimePicker 和一个名为 CHECK_DUPLICATE
[=17 的存储过程=]
在我的情况下,我不想检查确切的日期..但只检查年份..例如..如果两个条目是 txtNum = 1000
并且两个字段的年份值,则记录重复是 2017
public DataTable CHECK_DUPLICATE(string txtNum, string dtDateYear)
{
DataTable dt = new DataTable();
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@txtNum", SqlDbType.NVarChar, 50);
param[0].Value = txtNum;
param[1] = new SqlParameter("@dtDateYear ", SqlDbType.NVarChar, 5);
param[1].Value = dtDateYear;
dt = DAL.SelectData("CHECK_PROCURATION_DUPLICATE", param);
DAL.close();
return dt;
}
private void btnAddProcuration_Click(object sender, EventArgs e)
{
string year = DtDate.Value.ToString("yyyy");
DataTable dt = new DataTable();
dt = CHECK_DUPLICATE (txtNum.Text, year);
if (dt.Rows.Count > 1)
MessageBox.Show("Duplicated records", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
SQL :
CREATE PROCEDURE [dbo].[CHECK_DUPLICATE]
@Num nvarchar (50),
@Year nvarchar (5),
AS
BEGIN
SELECT Num, DATEPART(YEAR, MyDate) AS 'Year'
FROM tblMyList
WHERE Num = @Num AND MyDate = @Year
END
但它没有用……即使记录是重复的,它也会保存记录。
MyDate = @Year
应该 DATEPART(YEAR, MyDate) = @Year
像:
CREATE PROCEDURE [dbo].[CHECK_DUPLICATE]
@Num nvarchar (50),
@Year nvarchar (5),
AS
BEGIN
SELECT Num, DATEPART(YEAR, MyDate) AS 'Year'
FROM tblMyList
WHERE Num = @Num AND DATEPART(YEAR, MyDate) = @Year
END
我正在尝试检查其中一个字段是日期的重复记录……TxtNum
是文本框,DtDate
是 DateTimePicker 和一个名为 CHECK_DUPLICATE
[=17 的存储过程=]
在我的情况下,我不想检查确切的日期..但只检查年份..例如..如果两个条目是 txtNum = 1000
并且两个字段的年份值,则记录重复是 2017
public DataTable CHECK_DUPLICATE(string txtNum, string dtDateYear)
{
DataTable dt = new DataTable();
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@txtNum", SqlDbType.NVarChar, 50);
param[0].Value = txtNum;
param[1] = new SqlParameter("@dtDateYear ", SqlDbType.NVarChar, 5);
param[1].Value = dtDateYear;
dt = DAL.SelectData("CHECK_PROCURATION_DUPLICATE", param);
DAL.close();
return dt;
}
private void btnAddProcuration_Click(object sender, EventArgs e)
{
string year = DtDate.Value.ToString("yyyy");
DataTable dt = new DataTable();
dt = CHECK_DUPLICATE (txtNum.Text, year);
if (dt.Rows.Count > 1)
MessageBox.Show("Duplicated records", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
SQL :
CREATE PROCEDURE [dbo].[CHECK_DUPLICATE]
@Num nvarchar (50),
@Year nvarchar (5),
AS
BEGIN
SELECT Num, DATEPART(YEAR, MyDate) AS 'Year'
FROM tblMyList
WHERE Num = @Num AND MyDate = @Year
END
但它没有用……即使记录是重复的,它也会保存记录。
MyDate = @Year
应该 DATEPART(YEAR, MyDate) = @Year
像:
CREATE PROCEDURE [dbo].[CHECK_DUPLICATE]
@Num nvarchar (50),
@Year nvarchar (5),
AS
BEGIN
SELECT Num, DATEPART(YEAR, MyDate) AS 'Year'
FROM tblMyList
WHERE Num = @Num AND DATEPART(YEAR, MyDate) = @Year
END