2013-12-11 5 views
0

Что-то пошло не так с моим кодом. Код вставки не работает. Может ли кто-нибудь сказать мне, что я сделал не так? Код должен вставлять имя пользователя, пароль и роль в мою базу данных, когда пользователи нажимают кнопку, однако в моей базе данных ничего не отображается.Невозможно вставить в базу данных 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

Если это не единственные 3 столбцов в LOGIN таблице, SQL Server (мое предположение) не выполнит свой текст команды:

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

Это должно вызвать исключение, однако (даже если заданные по умолчанию на остальных столбцах):

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

Try список имен столбцов в командном тексте как таковые:

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! 

Посмотрите, если это имеет значение.

Смежные вопросы