2013-05-20 77 views
0

net,剃鬚刀,webmatrix,使用.cshtml頁面。防止將重複的輸入插入到SQL服務器數據庫中?

我正在使用jQuery打開模式窗體並使用該窗體將數據插入SQL數據庫(SQLExpress 2012)。我試圖通過使用下面的代碼來限制重複輸入,但是從網頁[對象XMLHttpReques]中獲取消息。

AddDiscount.cshtml代碼是:需要

@{ 


    if(IsPost){ 

     var db = Database.Open("A-LensCatFE-01SQL") ; 

     var CCode=UrlData[0]; 

     var Q1 = "SELECT * FROM dbo.tblPromos WHERE CustomerCode [email protected]"; 
     var ds = db.ExecuteDataSet(Q1, CCode); 

     if(ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
      { 
       MessageBox.Show("Duplicates"); 
      } 
     else 
     { 
     var sql = "INSERT INTO dbo.tblPromos (CustomerID, CustomerCode, Discount, VAT, VATRate, iScription, SRPBasedOn)" + 
      "VALUES (@0, @1, @2, @3, @4, @5, @6)"; 

     var customerid = Request["customerid"]; 
     var customercode = Request["customercode"]; 
     var discount = Request["discount"]; 
     var vat = Request["vat"] == "on" ? true : false; 
     var vatrate = Request["vatrrate"]; 
     var iscription = Request["iscription"]; 
     var srpbasedon = Request["srpbasedon"]; 

     db.Execute(sql, customerid, customercode, discount, vat, vatrate, iscription, srpbasedon); 

     } 
     } 
} 

您的幫助,非常感謝。

存儲過程的代碼是:

CREATE PROCEDURE dbo.spDiscDup

@CustomerID int =NULL, 
@CustomerCode nvarchar(max)=NULL, 
@Discount decimal(5,2)=NULL, 
@VAT bit =NULL, 
@VATRate decimal (5,2)=NULL, 
@iScription money=NULL, 

    AS 
    BEGIN 
IF EXISTS(SELECT * FROM tblPromos WHERE [email protected]) 
("Duplicates") 
    ELSE 
INSERT INTO dbo.tblPromos (CustomerID, CustomerCode, Discount, VAT, VATRate,   iScription, SRPBasedOn)" + 
      "VALUES (@0, @1, @2, @3, @4, @5, @6) 

END GO

回答

0

嘗試使用存儲過程,並檢查是否有記錄的存在或不插入之前。

If not exist 
Then insert it 
Else 
Return -1 -- means records exist/ Your prefer Msg/ any number 
+0

感謝您的回覆,但我是一個noob,因此需要更多的幫助,讓我明白我需要做什麼。 – Liquidmetal

+0

你的意思是,如何創建存儲過程? –

+0

我已經做了一個開始,但需要一些幫助來接受我的錯誤: – Liquidmetal

相關問題