Ошибка при вставке значения в базу данных в asp.net, c # регистрационной формы - PullRequest
0 голосов
/ 08 марта 2012

код шоу следующим образом:

nection cnn = new SqlConnection("Data Source=USER-PC\\KHEMCHAND;Integrated Security=True");

protected void Page_Load(object sender, EventArgs e)
{
    cnn.Open();
}

protected void Button1_Click(object sender, EventArgs e)
{  
    SqlCommand cmd = new SqlCommand("insert into tbl_ragistration values(@f_name,@l_name,@email_id,@pass_word,@[date of brth],@add_ress,@gender)", cnn);
    cmd.Parameters.AddWithValue("@f_name", Texfname.Text);
    cmd.Parameters.AddWithValue("@l_name", Texlname.Text);
    cmd.Parameters.AddWithValue("@email_id", Texemail.Text);
    cmd.Parameters.AddWithValue("@pass_word", Texpwd.Text);
    cmd.Parameters.AddWithValue("@[date o birth]", Texdbt.Text);
    cmd.Parameters.AddWithValue("@add_ress", Texadd.Text);
    cmd.Parameters.AddWithValue("@gender", DropDownList1.Text);
    cmd.ExecuteNonQuery();
    cnn.Close();
}

Ответы [ 4 ]

1 голос
/ 08 марта 2012

Вы можете попробовать использовать следующий способ, я надеюсь, что это хороший подход (хотя выполнение базы данных должно включать в себя Data Access Layer), спасибо за ваше время.

public string ConnectionString 
{
    get
    {
        return "Data Source=USER-PC\\KHEMCHAND;Integrated Security=True";
    }
}

protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
    using (SqlConnection cnn = new SqlConnection(ConnectionString))
    {
        using (SqlCommand cmd =new SqlCommand(
            "insert into tbl_ragistration values(@f_name,@l_name,@email_id,@pass_word,@[date of brth],@add_ress,@gender)"
            ,cnn))
        {
            cmd.Parameters.AddWithValue("@f_name", Texfname.Text);
            cmd.Parameters.AddWithValue("@l_name", Texlname.Text);
            cmd.Parameters.AddWithValue("@email_id", Texemail.Text);
            cmd.Parameters.AddWithValue("@pass_word", Texpwd.Text);
            cmd.Parameters.AddWithValue("@[date o birth]", Texdbt.Text);
            cmd.Parameters.AddWithValue("@add_ress", Texadd.Text);
            cmd.Parameters.AddWithValue("@gender", DropDownList1.Text);
            cnn.Open();
            cmd.ExecuteNonQuery();
        }
    }
} 
1 голос
/ 08 марта 2012

убедитесь, что вы также объявляете имена столбцов в операторе вставки:

protected void Button1_Click(object sender, EventArgs e)
{
    using (SqlConnection cnn = new SqlConnection(ConnectionString))
    {
        using (SqlCommand cmd =new SqlCommand(
            "insert into tbl_ragistration (f_name,l_name,email_id,pass_word,[date of brth],add_ress,gender) values (@f_name,@l_name,@email_id,@pass_word,@dateofbrth,@add_ress,@gender)"
            ,cnn))
        {
            cmd.Parameters.AddWithValue("@f_name", Texfname.Text);
            cmd.Parameters.AddWithValue("@l_name", Texlname.Text);
            cmd.Parameters.AddWithValue("@email_id", Texemail.Text);
            cmd.Parameters.AddWithValue("@pass_word", Texpwd.Text);
            cmd.Parameters.AddWithValue("@dateofbirth", Texdbt.Text);
            cmd.Parameters.AddWithValue("@add_ress", Texadd.Text);
            cmd.Parameters.AddWithValue("@gender", DropDownList1.Text);
            cnn.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

Привет

1 голос
/ 08 марта 2012

Измените cmd.Parameters.AddWithValue("@[date o birth]", Texdbt.Text); на cmd.Parameters.AddWithValue("@[date of birth]", Texdbt.Text); в поле «Присвоение значений параметров».А также не открывайте соединение в событии загрузки страницы.Перед выполнением запроса откройте соединение, выполните запрос и затем закройте соединение для лучшего подхода

       cnn.Open();
       cmd.ExecuteNonQuery();
       cnn.Close(); 
0 голосов
/ 08 марта 2012
  1. Откройте соединение во время выполнения команды, а не на странице. Загрузите и оберните свой код в блоке try catch для регистрации ошибки.
    protected void Button1_Click(object sender, EventArgs e)
    {  
SQLConnection cnn = new SqlConnection(WebConfigurationManager.ConnectionStrings["yourConnectionString"].ConnectionString);

 SqlCommand cmd = new SqlCommand("insert into tbl_ragistration values(@f_name,@l_name,@email_id,@pass_word,@[date of brth],@add_ress,@gender)", cnn);
    cmd.Parameters.AddWithValue("@f_name", Texfname.Text);
    cmd.Parameters.AddWithValue("@l_name", Texlname.Text);
    cmd.Parameters.AddWithValue("@email_id", Texemail.Text);
    cmd.Parameters.AddWithValue("@pass_word", Texpwd.Text);
    cmd.Parameters.AddWithValue("@[date o birth]", Texdbt.Text);
    cmd.Parameters.AddWithValue("@add_ress", Texadd.Text);
    cmd.Parameters.AddWithValue("@gender", DropDownList1.Text);
    try
    {
       cnn.Open();
       cmd.ExecuteNonQuery();
    }
    catch(SQLException ex)
    {  // Log your error
       lblStatus.Text="An error occured"+ ex.Message; 
       throw ex;
    }
    finally
    {
      if(cnn!=null)
      {
          cnn.Close();
      }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...