En iyi yanıtlayıcılar
[Yardım] ID numarasına göre veri tabanından veri çekme

Soru
-
Merhaba, benim işin içinden bir türlü çıkamadığım bir durum var. Değerli yardımlarınıza ihtiyacım var. Ben bir sayfa oluşturdum. Sayfa adı cesitli-dillerde-tercumanlar.aspx Buraya veri tabanından verileri çekiyorum
KODU OLUŞTURUYORUM:
OleDbConnection baglantix = new OleDbConnection();
<asp:DataList ID="dlZiyaret" runat="server" BackColor="White" BorderColor="#CCCCCC"
baglantix.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb");
baglantix.Open();
OleDbCommand cmdListele = new OleDbCommand();
cmdListele.Connection = baglantix;
cmdListele.CommandText = ("Select top 20 TercumanlarId,AdSoyad,Dil,Bayrak,Imaj from TB_tercumanlar");
dlZiyaret.DataSource = cmdListele.ExecuteReader();
dlZiyaret.DataBind();
cmdListele.Dispose();
baglantix.Close();
DATA LISTE DOLDURUYORUM
BorderStyle="None" BorderWidth="1px" CellPadding="4" GridLines="Horizontal" Width="560px"
ForeColor="Black" RepeatColumns="3">
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<ItemTemplate>
<div class="Leftimages">
<asp:Image ID="Image1" ImageUrl='<%#Eval("Bayrak") %>' runat="server" /></div>
<br />
<br />
<div class="Leftimages">
<a href="tercumanlar.aspx?TercumanId=<%#Eval("TercumanlarId") %>">
<asp:Image ID="Image2" ImageUrl='<%#Eval("Imaj") %>' runat="server" /></div>
</a>
<br />
<br />
<strong>Tercüman:</strong>
<div>
<%#Eval("AdSoyad")%></div>
<div>
</div>
<br />
<strong>Dil</strong>
<div>
<%#Eval("Dil")%></div>
</ItemTemplate>
<SelectedItemStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
</asp:DataList>
Burada sorun yok.
OleDbConnection baglantii = new OleDbConnection();
Asıl önemli olan ilgili veriye tıklayınca ID değerine göre cesitli-dillerde-tercumanlar.aspx sayfasında hangi veriye tıkladıysam, tercumanlar.aspx sayfasında o ID'yi çağırması gerek ama sürekli aynı Değeri döndürüyor. Yani ben 3 nolu id değerine sahip veriye tıklarsam ona ulaşmam lazım tercumanlar.aspx sayfasında. Bunu nasıl yapabilirim?
Kod bu. Burada takıldım kaldım.
baglantii.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb");
baglantii.Open();
OleDbCommand cmdListelee = new OleDbCommand();
cmdListelee.Connection = baglantii;
cmdListelee.CommandText = ("Select TercumanlarId,AdSoyad,Dil,Detay,Imaj from TB_tercumanlar");
cmdListelee.Parameters.AddWithValue("@TercumanlarId", Request.QueryString["TercumanlarId"]);
OleDbDataReader rd = cmdListelee.ExecuteReader();
while (rd.Read())
{
ltrTercumanNo.Text = rd[0].ToString();
ltrTercumanAd.Text = rd[1].ToString();
ltrDil.Text = rd[2].ToString();
ltrHakkinda.Text = rd[3].ToString();
ImageTercuman.ImageUrl = rd[4].ToString();
}
cmdListelee.Dispose();
baglantii.Close();
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<p>
<asp:Image ID="ImageTercuman" runat="server" ImageUrl="~/images/User128.png" />
<br />
<span class="RedColor">Tercüman No:</span><asp:Literal ID="ltrTercumanNo" runat="server"></asp:Literal><br />
<span class="RedColor">Tercüman:</span><asp:Literal ID="ltrTercumanAd" runat="server"></asp:Literal><br />
<span class="RedColor">Dil:</span><asp:Literal ID="ltrDil" runat="server"></asp:Literal><br />
<span class="RedColor">Tercüman Hakkında:</span><asp:Literal ID="ltrHakkinda" runat="server"></asp:Literal><br />
</p>
</asp:Content>
Yanıtlar
-
OleDbConnection baglantii = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb")); OleDbCommand cmdListelee = new OleDbCommand("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=@TercumanlarId",baglantii); cmdListelee.Parameter.AddWithValue("@TercumanlarId", Convert.ToInt16(Request.QueryString["TercumanlarId"]); OleDbDataAdapter adapter=new OleDbDataAdapter(cmdListelee); DataTable tablo=new DataTable(); adapter.Fill(tablo); Repeater1.DataSource=tablo; Repeater1.DataBind();
Datayı repater a bağlamalısınız.
- Düzenleyen Soner KOYLU 7 Ağustos 2014 Perşembe 21:00
- Yanıt Olarak İşaretleyen Fırat Boyan 7 Ağustos 2014 Perşembe 21:51
Tüm Yanıtlar
-
-
Merhaba,
Söylediğiniz gibi şu şekilde düzeltme yaptım. Umarım yanlış yapmamışımdır. Yine aynı sonucu alıyorum. Kayıtlarda (ID'leri 1,2,3,4,5 şeklinde sıralı) 5 tane veri var Sürekli 5 numaralı ID değerini döndürüyor.
OleDbConnection baglantii = new OleDbConnection();
baglantii.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb");
baglantii.Open();
OleDbCommand cmdListelee = new OleDbCommand();
cmdListelee.Connection = baglantii;
cmdListelee.CommandText = ("Select TercumanlarId,AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=TercumanlarId");
int TercumanlarId = Convert.ToInt16(Request.QueryString["TercumanlarId"]);
OleDbDataReader rd = cmdListelee.ExecuteReader();
while (rd.Read())
{
ltrTercumanNo.Text = rd[0].ToString();
ltrTercumanAd.Text = rd[1].ToString();
ltrDil.Text = rd[2].ToString();
ltrHakkinda.Text = rd[3].ToString();
ImageTercuman.ImageUrl = rd[4].ToString();
}
cmdListelee.Dispose();
baglantii.Close();Daha sonra da Select sorgusundan TercumanlarId kaldırayım nasılsa QueryString'den çekiyorum öyle deneyeyim dedim ama olmuyor bir türlü. Sonuç hep aynı. Konuyu açarken de bahsettiğim gibi cesitli-dillerde-tercumanlar.aspx sayfasında hangi veriye tıklarsam tercumanlar.aspx sayfasında o ID'yi çağırması gerek ama sürekli ID'si 5 olan Değeri döndürüyor.
OleDbConnection baglantii = new OleDbConnection();
baglantii.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb");
baglantii.Open();
OleDbCommand cmdListelee = new OleDbCommand();
cmdListelee.Connection = baglantii;
cmdListelee.CommandText = ("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=TercumanlarId");
int TercumanlarId = Convert.ToInt16(Request.QueryString["TercumanlarId"]);
OleDbDataReader rd = cmdListelee.ExecuteReader();
while (rd.Read())
{
ltrTercumanAd.Text = rd["AdSoyad"].ToString();
ltrDil.Text = rd["Dil"].ToString();
ltrHakkinda.Text = rd["Detay"].ToString();
ImageTercuman.ImageUrl = rd["Imaj"].ToString();
}
cmdListelee.Dispose();
baglantii.Close();Bir noktada hata yaptıysam affedin. Değerli yardımlarınızı rica ediyorum.
- Düzenleyen Fırat Boyan 7 Ağustos 2014 Perşembe 20:28
-
Tabi en sonuncuyu alır. While ile döngü kuruyorsunuz. Sonuncu nesne 5 numaralı id olduğu için onu alıyor. if derseniz de hep 1 nolu id yi alır. Repater nesnesi kullanmalısınız.
Burada örnekler var.
- Düzenleyen Soner KOYLU 7 Ağustos 2014 Perşembe 20:42
-
Tabi en sonuncuyu alır. While ile döngü kuruyorsunuz. Sonuncu nesne 5 numaralı id olduğu için onu alıyor. if derseniz de hep 1 nolu id yi alır. Repater nesnesi kullanmalısınız.
Soner Bey öncelikle ilginiz için çok teşekkür ederim. Şu şekilde yaptım ancak bu seferde bütün veriler dökülüyor :) Ben tek bir ID'nin verisini çekmek istediğim için Literal kullanmıştım.
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="Leftimages">
<asp:Image ID="Image2" ImageUrl='<%#Eval("Imaj") %>' runat="server" /></div>
<br />
<br />
<strong>Ad Soyad:</strong>
<div>
<%#Eval("AdSoyad")%></div>
<div>
</div>
<br />
<strong>Hakkında:</strong>
<div>
<%#Eval("Detay")%></div>
</ItemTemplate>
</asp:Repeater>-----------------------------
OleDbConnection baglantii = new OleDbConnection();
Repeater1.DataSource = rd;
baglantii.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb");
baglantii.Open();
OleDbCommand cmdListelee = new OleDbCommand();
cmdListelee.Connection = baglantii;
cmdListelee.CommandText = ("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=TercumanlarId");
int TercumanlarId = Convert.ToInt16(Request.QueryString["TercumanlarId"]);
OleDbDataReader rd = cmdListelee.ExecuteReader();
Repeater1.DataBind();cmdListelee.Dispose();
baglantii.Close();
- Düzenleyen Fırat Boyan 7 Ağustos 2014 Perşembe 20:57
-
OleDbConnection baglantii = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb")); OleDbCommand cmdListelee = new OleDbCommand("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=@TercumanlarId",baglantii); cmdListelee.Parameter.AddWithValue("@TercumanlarId", Convert.ToInt16(Request.QueryString["TercumanlarId"]); OleDbDataAdapter adapter=new OleDbDataAdapter(cmdListelee); DataTable tablo=new DataTable(); adapter.Fill(tablo); Repeater1.DataSource=tablo; Repeater1.DataBind();
Datayı repater a bağlamalısınız.
- Düzenleyen Soner KOYLU 7 Ağustos 2014 Perşembe 21:00
- Yanıt Olarak İşaretleyen Fırat Boyan 7 Ağustos 2014 Perşembe 21:51
-
OleDbConnection baglantii = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb")); OleDbCommand cmdListelee = new OleDbCommand("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=@TercumanlarId",baglantii); cmdListelee.Parameter.AddWithValue("@TercumanlarId", Convert.ToInt16(Request.QueryString["TercumanlarId"]); OleDbDataAdapter adapter=new OleDbDataAdapter(cmdListelee); DataTable tablo=new DataTable(); adapter.Fill(tablo); Repeater1.DataSource=tablo; Repeater1.DataBind();
Datayı repater a bağlamalısınız.
Soner Bey çok özür dilerim ama sizin kadar uzman değilim kodu şu şekilde yazdım
OleDbConnection baglantii = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/tercume.accdb"));
OleDbCommand cmdListelee = new OleDbCommand("Select AdSoyad,Dil,Detay,Imaj from TB_tercumanlar where TercumanlarId=@TercumanlarId",baglantii);
cmdListelee.Parameters.AddWithValue("@TercumanlarId", Convert.ToInt16(Request.QueryString["TercumanlarId"]));
OleDbDataAdapter adapter=new OleDbDataAdapter(cmdListelee);
DataTable tablo=new DataTable();
adapter.Fill(tablo);
Repeater1.DataSource=tablo;
Repeater1.DataBind();Sonuç yine boş geliyor Data'yı nerede bağlamam gerekiyor repeater'a ?
-
Mail atın bakalım.
-
-