Member 14185275 Ответов: 1

Как изменить значение по умолчанию флажка 'N' на 'Y' в базе данных, если флажок установлен


Я создал таблицу в базе данных sql с некоторыми столбцами.В этом одном столбце имя "Featured" с char (1) и значением по умолчанию "N".При заполнении формы на странице aspx, если я не установил флажок "Featured", в базе данных при сохранении как "N", но если я проверю этот флажок "Featured", столбец базы данных должен сохраниться как "Y".Может ли кто - нибудь помочь мне с этим?

Что я уже пробовал:

 DAL:

 public void save_Click(int pid, string pname,bool fea, string sdesc)
        {
            SqlCommand cmd = new SqlCommand("SPSAVEDATA", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@P_id", pid);
            cmd.Parameters.AddWithValue("@P_name", pname);                   
            cmd.Parameters.AddWithValue("@P_isfeatured", fea);
            cmd.Parameters.AddWithValue("@P_shortdesc", sdesc);            
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }

 BAL:

 public void Product(int pid, string pname,bool fea, string sdesC)
        {
            dll.save_Click(pid, pname,fea, sdesc);
        }

 CS:
 protected void Btn_save_Click(object sender, EventArgs e)
    {
        if (HiddenField1.Value == "")
        {
            
            bll.Product(0, txt_proName.Text, Convert.ToBoolean(chk_featured.Checked), txt_sdesc.Text);
            Response.Write("<script>alert('Product Added Successfully')</script>");
            
        }
        else
        {            
            bll.Product(Convert.ToInt16(HiddenField1.Value), txt_proName.Text,Convert.ToBoolean(chk_featured.Checked), txt_sdesc.Text);           
            Response.Write("<script>alert('Product Updated Successfully')</script>");            
        }        
    }

Stored Procedure:

ALTER PROC [dbo].[SPSAVEDATA]
@P_id int,
@P_name varchar(50),
@P_isfeatured char(1),
@P_shortdesc varchar(150)
AS 
BEGIN 
 if(@P_id = 0)
   BEGIN
	insert into Products1 (P_name,P_isfeatured,P_shortdesc) values (@P_name,@P_isfeatured,@P_shortdesc) 
END  

  else
BEGIN
        update Products1 set P_name=@P_name,P_isfeatured=@P_isfeatured,P_shortdesc=@P_shortdesc where P_id=@P_id
END  
END

1 Ответов

Рейтинг:
12

#realJSOP

Изменить это:
cmd.Parameters.AddWithValue("@P_isfeatured", fea);

до настоящего времени:
cmd.Parameters.AddWithValue("@P_isfeatured", (fea) ? "Y" : "N" );


Member 14185275

Большое спасибо у СУ за ваш ответ, это сработало. Tanx большое