2013-12-11 2 views
0

내 코드가 잘못되었습니다. 삽입 코드가 작동하지 않습니다. 누군가 내가 뭘 잘못했는지 말해 줄 수 있니? 코드는 사용자가 버튼을 클릭 할 때 데이터베이스에 사용자 이름, 암호 및 역할을 삽입하도록되어 있지만 데이터베이스에는 아무 것도 나타나지 않습니다. 다음은 로그인 테이블에서 유일하게 3 열 않는 한데이터베이스에 삽입 할 수 없습니다. asp.net C#

namespace Login_role 
{ 
    public partial class Register : System.Web.UI.Page 
    { 

     string strConnString = ConfigurationManager.ConnectionStrings["victs"].ConnectionString; 
     SqlCommand com; 

     protected void btn_register_Click(object sender, EventArgs e) 
     { 
      SqlConnection con = new SqlConnection(strConnString); 
      com = new SqlCommand(); 
      com.Connection = con; 
      com.CommandType = CommandType.Text; 
      com.CommandText = "Insert into Login values(@UserName,@Password,@Role)"; 
      com.Parameters.Clear(); 
      com.Parameters.AddWithValue("@UserName", txt_UserName.Text); 
      com.Parameters.AddWithValue("@Password", txt_Password.Text); 
      com.Parameters.AddWithValue("@Role", rbtRole.SelectedValue); 
      if (con.State == ConnectionState.Closed) 
       con.Open(); 
      com.ExecuteNonQuery(); 
      con.Close(); 
      lblmsg.Text = "Successfully Registered!!!"; 
      clear(); 
     } 
     private void clear() 
     { 
      txt_UserName.Text = ""; 
      rbtRole.ClearSelection(); 
     } 
    } 
} 
+2

예외가 발생합니까? ??? – Habib

+0

연결 문자열은 무엇이며 "아무 것도 내 데이터베이스에 나타나지 않습니다"라고 생각하는 이유는 무엇입니까? –

+0

코드가 오류없이 실행된다고 가정 할 수 있습니까? 그리고 데이터베이스 트랜잭션 로그에 액세스 할 수 있습니까? – FLGMwt

답변

1

, SQL 서버 (내 가정) 명령 텍스트 실행되지 않습니다 : 그러나,이 예외를 발생한다

com.CommandText = "Insert into Login values(@UserName,@Password,@Role)"; 

을 (경우에도이

"Column name or number of supplied values does not match table definition." 

시도 같은 명령 텍스트의 열 이름을 나열 :

나머지 열에서 기본값)입니다
string sqlCmd = "Insert into Login (UserName, Password, Role) " + 
       "values(@UserName,@Password,@Role)"; 
com.CommandText = sqlCmd; 
com.CommandType = CommandType.Text; // <-- SQL doesn't have to guess! 

이것이 차이가 있는지 확인하십시오.

관련 문제