私は C# winforms と SQL サーバーと LINQ to SQL でプログラムを書きました。フォームの代わりにユーザー コントロールを使用します。私のユーザー コントロールでは、3 つのテキスト ボックス、txtStartNumber、txtEndNumber、txtQuantity を配置します。ユーザーがテキストボックスの値を定義し、ボタンをクリックすると、txtQuantity の値に従っていくつかのレコードが挿入されます。
重複した番号が作成されたときに、データベースに追加せず、メッセージを表示したい。私はどのように行いますか?コード ビハインドまたはサーバー サイドでコードを記述する必要がありますか? これをストア プロシージャまたはトリガーで設定する必要がありますか?
private void btnSave_Click(object sender, EventArgs e)
{
long from = Convert.ToInt64(txt_barcode_f.Text);
long to = Convert.ToInt64(txt_barcode_t.Text);
long quantity = Convert.ToInt64(to - from);
int card_Type_ID=Convert.ToInt32(cmb_BracodeType .SelectedValue);
long[] arrCardNum = new long[(to - from)];
arrCardNum[0]=from;
for (long i = from; i < to; i++)
{
for(int j=0; j<(to-from) ;j++)
{
arrCardNum[j]=from+j;
string r = arrCardNum[j].ToString();
sp.SaveCards(r, 2, card_Type_ID, SaveDate, 2);
}
}
}
ストアド プロシージャ コード。
ALTER PROCEDURE dbo.SaveCards
@Barcode_Num int
,@Card_Status_ID int
,@Card_Type_ID int
,@SaveDate varchar(10)
,@Save_User_ID int
AS
BEGIN
INSERT INTO [Parking].[dbo].[TBL_Cards]
([Barcode_Num]
,[Card_Status_ID]
,[Card_Type_ID]
,[Save_User_ID])
VALUES
(@Barcode_Num
,@Card_Status_ID
,@Card_Type_ID
,@Save_User_ID)
END