2015-07-16 5 views
0

У меня есть четыре флажка. Но я не могу вставить выбранное значение флажка в мою таблицу SQL.Как вставить выбранное значение asp.net C# в базу данных sql

мой код: -

protected void btnADDSAVE_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("Data Source=SONU-PC\\SQLEXPRESS; Initial Catalog=Prashant-Online_Store-DB; Integrated Security=true"); 
     SqlCommand cmd = new SqlCommand(); 

     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.CommandText = "sp_addnewproduct"; 

     cmd.Parameters.Add("@name", SqlDbType.VarChar,50).Value = checkbox.Text.Trim(); 
     cmd.Parameters.Add("@code", SqlDbType.NVarChar, 100).Value = checkbox1.Text.Trim(); 
     cmd.Parameters.Add("@name", SqlDbType.VarChar,50).Value = checkbox3.Text.Trim(); 
     cmd.Parameters.Add("@code", SqlDbType.NVarChar, 100).Value = checkbox4.Text.Trim(); 
     cmd.Connection = con; 
     try 
     { 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      Response.Write("Add new product.."); 

     } 
     catch 
     { 
      Response.Write("Not add new product.?"); 
     } 
     finally 
     { 
      con.Close(); 
      con.Dispose(); 
     } 

    } 
+0

Вы получаете сообщение об ошибке после выполнения кода? –

+2

Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –

+0

Сохраняет ли ваша хранимая процедура 2 параметра или 4 параметра? Вы пытаетесь вызвать процедуру только один или два раза? – jsanalytics

ответ

0

Как SpiderCode указал, вы пытаетесь получить текстовое значение флажка без проверки, если флажок установлен или нет.

использовать условный оператор, чтобы вставить значение, если отмечено else, вставить пустую строку;

cmd.Parameters.Add("@name", SqlDbType.VarChar,50).Value = checkbox.IsChecked ? checkbox.Text.Trim() : string.Empty; 
Смежные вопросы