2012-02-29 3 views
0

コードが正常に動作していますが、行は保存されていますが、データベースを調べると行が保存されませんでした。私を助けてくれますか?ASP.NETのストアドプロシージャを使用してデータベースに行を保存することに問題がある

ストアドプロシージャを使用して行を保存したい場合、checkifusernameexistは機能していますが、保存関数はデータを保存しません。

ここに私のコードは、あなたがそれを理解できることを願っています。

using System; 
using System.Data; 
using System.Configuration; 
using System.Data.SqlClient; 
using System.ComponentModel; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Collections.Generic; 
using System.IO; 

namespace storedprocedures 
{ 
    public partial class Login : System.Web.UI.Page 
    { 
     public string GetConnectionString() 
     { 
      return System.Configuration.ConfigurationManager.ConnectionStrings["practiceDatabaseConnectionString"].ConnectionString; 
     } 

     private void executeAdd(string username, string password) 
     { 
      SqlConnection conn = new SqlConnection(GetConnectionString()); 
      conn.Open(); 

      SqlCommand cmd = new SqlCommand("usp_CreateUser", conn); 
      cmd.CommandType = CommandType.StoredProcedure; 
      SqlParameter p1 = new SqlParameter("userName",userName.Text); 
      SqlParameter p2 = new SqlParameter("password",password.ToString()); 
      cmd.Parameters.Add(p1); 
      cmd.Parameters.Add(p2); 

      SqlDataReader dReader = cmd.ExecuteReader(); 

      if (dReader.HasRows) 
      { 
       dReader.Read();  
       Label3.Text="Record Added!"; 
      } 
      else 
      { 
       Label3.Text="User Error"; 
      } 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      SqlConnection con = new SqlConnection(GetConnectionString()); 
      con.Open(); 

      SqlCommand cmd = new SqlCommand("usp_CheckIfUserNameExist",con); 
      cmd.CommandType = CommandType.StoredProcedure; 
      SqlParameter p1 = new SqlParameter("userName", userName.Text); 
      cmd.Parameters.Add(p1); 
      SqlDataReader dReader = cmd.ExecuteReader(); 

      if (dReader.HasRows) 
      { 
       dReader.Read(); 
       this.Label3.ForeColor = System.Drawing.Color.Red; 
       this.Label3.Text = "Username already exist!"; 
      } 
      else 
      { 
       this.Label3.Text = "congrats! nanalo ka na!"; 
       this.userName.Text = ""; 
       this.password.Text = ""; 
      } 
     } 
    } 
} 
+0

**表示する必要があります**あなたの接続文字列! –

答えて

3

cmd.ExecuteNonQuery()を使用してレコードを追加します。

+2

cmd.ExecuteNonQuery()からの戻り値は整数で、クエリで変更された行の数を確認できます。 – Developer

+0

YES、変更された行の数を返します。 – Saurabh

関連する問題