Forum
Merhaba, Admin panelinden değiştirilebilen bir Arkaplan yapmak istiyorum. SQL de Arkaplan adlı bir tablom var.
Yapısı şu şekilde: "ArkaplanId,ArkaplanAdi,Resim"
Bunları
arkaplanı kaydetme aşamasında sorun yok ancak seçeneğe bağlı olarak
birini seçicem ve sitenin arkaplanı değişecek. Dataliste çektiğim
arkaplanları radio butanları ile seçenek haline getirip aktif olan
arkaplanı sitede göstermek istiyorum. Bunu nasıl yapabilirim?
C# ASP.Net kullanıyorum.
------------------------------------------------------------------------
<asp:DataList ID="dlArkaplanlar" runat="server" CellSpacing="10" RepeatDirection="Horizontal" RepeatColumns="4" HorizontalAlign="Center"> <ItemStyle BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px"/> <ItemTemplate> <table> <tr> <td align="center"> <%#Eval("ArkaplanAdi") %> </td> </tr> <tr> <td> <img src="../Images/<%#Eval("Resim") %>" width="160" /> </td> </tr> <tr> <td align="center"> <img src="Images/sil.png" /> </td> </tr> </table> </ItemTemplate> </asp:DataList>
--------------------------CodeBehind-----------------------------
using System; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System; using System.Drawing; public partial class Admin_Styles_Ayarlar : System.Web.UI.Page { Fonksiyon sistem = new Fonksiyon(); protected void Page_Load(object sender, EventArgs e) { arkaplanCek();
} void arkaplanCek() { DataTable dtArkaplanlar = sistem.GetDataTable("Select * from Arkaplan"); dlArkaplanlar.DataSource = dtArkaplanlar; dlArkaplanlar.DataBind(); } }
-------------------------------------------------------
Merhaba, bunu kullanıcı bazlı yapmadığınızı fark ettim, genel olarak işlev görecek bu özellik için radio butona ait event oluşturarak veri tabanınızda seçilen satır için true false özelliğini tutan bir veri ile bunu sağlayabilirsiniz.
Sayfayı aşağıdaki şekilde düzenledim ancak hata alıyorum. Hatanın
neden kaynaklandığını çözemedim. Yardımcı olursanız sevinirim...
The
parameterized query '(@ArkaplanId nvarchar(4000))Update Arkaplan set
Aktif=0 Update A' expects the parameter '@ArkaplanId', which was not
supplied.
Açıklama: Geçerli
web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve
kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın
izlemesini gözden geçirin.
Özel Durum Ayrıntıları: System.Data.SqlClient.SqlException:
The parameterized query '(@ArkaplanId nvarchar(4000))Update Arkaplan
set Aktif=0 Update A' expects the parameter '@ArkaplanId', which was not
supplied.
Kaynak Hatası:
|
Ayarlar.aspx kodlarını aşağıya yazdım.
<asp:DataList ID="dlArkaplanlar" runat="server" CellSpacing="5" RepeatDirection="Horizontal" RepeatColumns="4" HorizontalAlign="Center" OnItemDataBound="dlArkaplanlar_OnItemDataBound"> <ItemStyle BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px"/> <ItemTemplate> <table> <tr> <td align="center"> <%#Eval("ArkaplanAdi") %> </td> </tr> <tr> <td> <img src="../Images/<%#Eval("Resim") %>" width="160" /> </td> </tr> <tr> <td align="center"> <img src="Images/sil.png" /> </td> </tr> <tr> <td align="center"> <br/><asp:RadioButton ID="rbAktif" runat="server" TextAlign="Left" GroupName="ArkaplanAyarla" onKeyPress="return suppress(event);" AutoPostBack="True" /> <asp:Button ID="btnArkaplanAyarla" runat="server" Text="Ayarla" OnClick="btnArkaplanAyarla_Click" /> </td> </tr> </table> </ItemTemplate> </asp:DataList>
protected void btnArkaplanAyarla_Click(object sender, EventArgs e) { //Arkaplanı ayarlıyoruz. SqlConnection baglanti = sistem.baglan(); SqlCommand cmdArkaplanAyarla = new SqlCommand("Update Arkaplan set Aktif=0 Update Arkaplan set Aktif=1 Where ArkaplanId=@ArkaplanId", baglanti); foreach (DataListItem item in dlArkaplanlar.Items) { DataList rbAktif = (DataList) item.FindControl("dlArkaplanlar"); if (Visible) { cmdArkaplanAyarla.Parameters.AddWithValue("@ArkaplanId", rbAktif); cmdArkaplanAyarla.ExecuteNonQuery(); } } }
"Update Arkaplan set Aktif=0 Update Arkaplan set Aktif=1 Where ArkaplanId=@ArkaplanId" kısmında bir hata almaktasınız. Bu alanı aşağıda ki verdiğim sql sorgusu ile deneyebilir misiniz.
"Update Arkaplan set Aktif=0; Update Arkaplan set Aktif=1 Where ArkaplanId=@ArkaplanId;"
Dediğini yaptım ancak değişen bişe olmadı
The parameterized query '(@ArkaplanId nvarchar(4000))Update Arkaplan set Aktif=0; Update ' expects the parameter '@ArkaplanId', which was not supplied.
ArkaplanId integer sen string gönderiyorsun.