- Mesajlar
- 1,085
Asp.net uzmanları yardımlarınızı bekliyorum:
Önceki ana sayfadan bu sayfanın(HaberDetay.aspx) haber linkine tıklayınca veritabanından haberin HaberId'sini alıp global.asax üzerinden bu sayfaya yolluyor ve bu sayfada RouteData.Values ile çekilip ilgili haber HaberId ile sorgulanıp sayfaya getiriliyor. Buraya kadar sorun yok. Ama sayfanın altında bu habere yorum bilgilerini textbox'lara girip butona tıklatığımda yeni eklediğim yorumun da Response.Redirect("HaberDetay.aspx"); yani postback olduğunda sayfada görünmesini istiyorum. Bu sefer postback işleminden sonra HaberId'yi global.asax'tan alamayacağım için ben de en altta Response.Redirect("HaberDetay.aspx?deger="+HaberId); ile sayfaya aynı değeri tekrar gönderip bu sefer Request.Querystring ile aldım ve bunu postback kontrol döngüsünün içinde yaptım.
Yorumm bilgilerini textboxlara yazıp tıkladığımda veri tabanına veri ekleniyor ama sayfayı yeniden yüklemiyor ve şu şekilde hata alıyorum:
Incorrect syntax near '='.(Select * from Haberler Where HaberId=) sanırım geri döndürdüğüm HaberId'yi tanımıyor.
Yeni yaptığım yorumu sayfadaki önceki yorumların yanına eklemek için(postback olduktan sonra Yorumlar tablosunu bi daha yüklemek için) geriye HaberId'yi dğru şekilde nasıl göndermeliyim? nerede yanlış yapıyorum?
---------------------------------------------------------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class HaberDetay : System.Web.UI.Page
{
kaynak metot = new kaynak();
public static string HaberId = "";
public static string HaberAdi = ""; //google SEO için h1 etiketinin içinde Response.Write ile direkt çekmek için public string diye tanımlıyoruz.
protected void Page_Load(object sender, EventArgs e)
{
//hangi haber başlığına tıklandıysa varsayılan.aspx'te a href ile o haber başlığının HaberId'si global.asax'a gidiyor,
//global.asax'tan da HaberId'yi çekiyoruz, böylece tıklanan haberin bilgilerini bu sayfadaki Literal'lere yüklüyoruz.
if (Page.IsPostBack == false)
{
HaberId = Ayarlar.sayikontrol(Ayarlar.Temizle(RouteData.Values["HaberId"].ToString())); //sayfa ilk yüklenirken global.asax'tan gelen HaberId
}
else
{
HaberId= Request.QueryString["deger"];//sayfa postback olduğunda geri gönderdiğim HaberId
}
DataRow dr = metot.satirim("Select * from Haberler Where HaberId=" + HaberId); //hatayı bu satırda veriyor butona tıklayına
if (dr != null)
{
HaberAdi = dr["Baslik"].ToString(); //h1'in içinden çektiğimiz de mouse ile üzerinde bekleyince gelecek. SEO için.
LiteralBaslik.Text = HaberAdi;
LiteralDetay.Text = "<img src=\"HaberResimleri/150/" + dr["Resmi"].ToString() + "\"align=\"left\"hspace=\"5\"/>" + dr["Detay"].ToString();
LiteralEklenmeTarihi.Text = dr["EklenmeTarihi"].ToString();
LiteralOkunmaSayısı.Text = dr["Hit"].ToString();
metot.guncelle("update Haberler set Hit=Hit+1 where HaberId=" + HaberId);
DataTable yorum = metot.tablom("select * from Yorumlar where HaberId=" + HaberId);
if (yorum.Rows.Count > 0)
{
DataList1.DataSource = yorum;
DataList1.DataBind();
}
else LiteralBilgi.Text = "Henüz yorum yapılmadı";
}
}
protected void btngonder_Click(object sender, EventArgs e)
{
SqlConnection baglantim = metot.baglan();
SqlCommand ekle = new SqlCommand("Insert into Yorumlar(HaberId,AdSoyad,Yorumu,Tarih,Onay) values(@HaberId,@AdSoyad,@Yorumu,@Tarih,@Onay)", baglantim);
ekle.Parameters.AddWithValue ("HaberId", HaberId);
ekle.Parameters.AddWithValue("AdSoyad", Txtbx1.Text);
ekle.Parameters.AddWithValue("Yorumu", txtbx2.Text);
ekle.Parameters.AddWithValue("Tarih", DateTime.Now.ToString());
ekle.Parameters.AddWithValue("Onay", "0");
ekle.ExecuteNonQuery();
ekle.Dispose();
baglantim.Close();
Response.Redirect("HaberDetay.aspx?deger="+HaberId); //Burada HaberId'yi geri gönderdim ama tanımıyor.
}
}
Önceki ana sayfadan bu sayfanın(HaberDetay.aspx) haber linkine tıklayınca veritabanından haberin HaberId'sini alıp global.asax üzerinden bu sayfaya yolluyor ve bu sayfada RouteData.Values ile çekilip ilgili haber HaberId ile sorgulanıp sayfaya getiriliyor. Buraya kadar sorun yok. Ama sayfanın altında bu habere yorum bilgilerini textbox'lara girip butona tıklatığımda yeni eklediğim yorumun da Response.Redirect("HaberDetay.aspx"); yani postback olduğunda sayfada görünmesini istiyorum. Bu sefer postback işleminden sonra HaberId'yi global.asax'tan alamayacağım için ben de en altta Response.Redirect("HaberDetay.aspx?deger="+HaberId); ile sayfaya aynı değeri tekrar gönderip bu sefer Request.Querystring ile aldım ve bunu postback kontrol döngüsünün içinde yaptım.
Yorumm bilgilerini textboxlara yazıp tıkladığımda veri tabanına veri ekleniyor ama sayfayı yeniden yüklemiyor ve şu şekilde hata alıyorum:
Incorrect syntax near '='.(Select * from Haberler Where HaberId=) sanırım geri döndürdüğüm HaberId'yi tanımıyor.
Yeni yaptığım yorumu sayfadaki önceki yorumların yanına eklemek için(postback olduktan sonra Yorumlar tablosunu bi daha yüklemek için) geriye HaberId'yi dğru şekilde nasıl göndermeliyim? nerede yanlış yapıyorum?
---------------------------------------------------------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class HaberDetay : System.Web.UI.Page
{
kaynak metot = new kaynak();
public static string HaberId = "";
public static string HaberAdi = ""; //google SEO için h1 etiketinin içinde Response.Write ile direkt çekmek için public string diye tanımlıyoruz.
protected void Page_Load(object sender, EventArgs e)
{
//hangi haber başlığına tıklandıysa varsayılan.aspx'te a href ile o haber başlığının HaberId'si global.asax'a gidiyor,
//global.asax'tan da HaberId'yi çekiyoruz, böylece tıklanan haberin bilgilerini bu sayfadaki Literal'lere yüklüyoruz.
if (Page.IsPostBack == false)
{
HaberId = Ayarlar.sayikontrol(Ayarlar.Temizle(RouteData.Values["HaberId"].ToString())); //sayfa ilk yüklenirken global.asax'tan gelen HaberId
}
else
{
HaberId= Request.QueryString["deger"];//sayfa postback olduğunda geri gönderdiğim HaberId
}
DataRow dr = metot.satirim("Select * from Haberler Where HaberId=" + HaberId); //hatayı bu satırda veriyor butona tıklayına
if (dr != null)
{
HaberAdi = dr["Baslik"].ToString(); //h1'in içinden çektiğimiz de mouse ile üzerinde bekleyince gelecek. SEO için.
LiteralBaslik.Text = HaberAdi;
LiteralDetay.Text = "<img src=\"HaberResimleri/150/" + dr["Resmi"].ToString() + "\"align=\"left\"hspace=\"5\"/>" + dr["Detay"].ToString();
LiteralEklenmeTarihi.Text = dr["EklenmeTarihi"].ToString();
LiteralOkunmaSayısı.Text = dr["Hit"].ToString();
metot.guncelle("update Haberler set Hit=Hit+1 where HaberId=" + HaberId);
DataTable yorum = metot.tablom("select * from Yorumlar where HaberId=" + HaberId);
if (yorum.Rows.Count > 0)
{
DataList1.DataSource = yorum;
DataList1.DataBind();
}
else LiteralBilgi.Text = "Henüz yorum yapılmadı";
}
}
protected void btngonder_Click(object sender, EventArgs e)
{
SqlConnection baglantim = metot.baglan();
SqlCommand ekle = new SqlCommand("Insert into Yorumlar(HaberId,AdSoyad,Yorumu,Tarih,Onay) values(@HaberId,@AdSoyad,@Yorumu,@Tarih,@Onay)", baglantim);
ekle.Parameters.AddWithValue ("HaberId", HaberId);
ekle.Parameters.AddWithValue("AdSoyad", Txtbx1.Text);
ekle.Parameters.AddWithValue("Yorumu", txtbx2.Text);
ekle.Parameters.AddWithValue("Tarih", DateTime.Now.ToString());
ekle.Parameters.AddWithValue("Onay", "0");
ekle.ExecuteNonQuery();
ekle.Dispose();
baglantim.Close();
Response.Redirect("HaberDetay.aspx?deger="+HaberId); //Burada HaberId'yi geri gönderdim ama tanımıyor.
}
}