2017-09-27 40 views
-3

SQL查詢:
ALTER過程[DBO] [sp_test1] (@UserName爲nvarchar(50),@密碼爲nvarchar(50),@ MobileNo nvarchar的(20)) 作爲 開始 如果存在(從TEST1選擇MobileNo其中 MobileNo = @MobileNo和用戶名!= @用戶名) 選擇「已手機號碼存在的」味精 否則,如果存在(選擇test1的地方 用戶名用戶名= @Username和MobileNo!= @MobileNo) 選擇'已存在用戶名'作爲msg 否則如果存在(從test1選擇用戶名,MobileNo Ë 用戶名= @用戶名和MobileNo = @ MobileNo) 選擇 '用戶名已經移動&沒有存在的' 味精 其他 開始 INSERT INTO test1的 值(@用戶名,密碼@,@ mobileno) 選擇 '檔案創建'如MSG 端 端我想在一個水平網頁上打印存儲過程的消息

C#代碼: 公共部分類_Default:System.Web.UI.Page { 字符串str = ConfigurationManager.ConnectionStrings [ 「測試」]的ConnectionString; 保護無效的Page_Load(對象發件人,EventArgs的) {

} 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     if (ValidateForm()) 
     { 

      Save(); 
     } 
    } 
    private void Save() 
    { 
     SqlConnection con = new SqlConnection(str); 
     SqlCommand cmd = new SqlCommand("sp_test1", con); 
     con.Open(); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.AddWithValue("Username",TextBox1.Text); 
    cmd.Parameters.AddWithValue("Password",TextBox2.Text); 
    cmd.Parameters.AddWithValue("MobileNo",TextBox3.Text); 
    cmd.ExecuteNonQuery(); 

    if (count > 0) 
    { 
     lbluser.Text = "Username is already exists"; 
    } 
    else 
    { 
     lblmsg.Text = "Registered Successfully"; 
    } 
    con.Close(); 
    Response.Redirect("Default.aspx"); 


} 
private bool ValidateForm() 
{ 
    bool ret = true; 
    { 

     if (string.IsNullOrEmpty(TextBox1.Text)) 
     { 
      ret = false; 
      lbluser.Text = "Please Enter Username"; 
     } 
     else 
     { 
      lbluser.Text = ""; 
     } 
     if (string.IsNullOrEmpty(TextBox2.Text)) 
     { 
      ret = false; 
      lblpwd.Text = "Please Enter Password"; 
     } 
     else 
     { 
      lblpwd.Text = ""; 
     } 
     if (string.IsNullOrEmpty(TextBox3.Text)) 
     { 
      ret = false; 
      lblmob.Text = "Please Enter Mobile Number"; 
     } 
     else 
     { 
      lblmob.Text = ""; 
     } 
     return ret; 

    } 

} 
protected void Button2_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("Login.aspx"); 
} 

}

+0

尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。 –

+0

指定要爲其檢查重複值的「文本框」。 – mmushtaq

+0

可能無助於解決您的問題,但您應該在參數名稱前添加一個「@」。 ([見這裏](https://stackoverflow.com/questions/10245510/is-it-necessary-to-add-a-in-front-of-an-sqlparameter-name)) – MatSnow

回答

0

總結一下,你有2個功能代碼:

  • ValidateForm():它只是檢查用戶輸入爲空或空
  • 保存():它只是向數據庫插入新記錄

然後,如果輸入是重複數據,則要顯示消息以通知用戶。

好的,你需要一個函數檢查重複數據。讓我們把它叫做CheckDulicate()

最後,我建議是這樣的:

if (ValidateForm()) 
{ 
    if(CheckDulicate() == false) 
    { 
     Save(); 
    } 
    else 
    { 
     // display the message you want 
     // MessageBox.Show("...."); 
    } 
} 
0

如果您在打印的文本消息唯一的問題,你可以做到這一點有兩種方式 -
1.消息框。顯示(「你的信息在這裏」);
2.設置用於顯示特定控件的錯誤文本消息的驗證規則。

第二種方式是在將數據保存到數據庫之前驗證任何控件的正確方法。