using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class VideoDetay : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());
public string VideoGetir(object Link)
{
string link=""; //Burda VideoGonder methodu içersinde heryerden erişebileceğimiz bir değişken tanımlıyoruz.
SqlCommand cmdInsert = new SqlCommand("Select IcerikLink from Icerik Where IcerikID=@Link",con);//IcerikTablosundan bizim seçtiğimiz videonun linkini getiriyoruz.
if (ConnectionState.Closed == con.State)//Burda bağlantı durumunu kontrol ettik dedikki eğer bizim con diye oluşturduğumuz bağlantı nesnemizin bağlantı durumu kapalıysa bağlantıyı aç!
con.Open();
try
{
cmdInsert.Parameters.AddWithValue("@Link", Link.ToString()); //Burada tıkladığımız videonun IcerikID'sini veritabanından yolunu çekmek için select sorgumuza parametre olarak yolluyoruz.
link = Convert.ToString(cmdInsert.ExecuteScalar());//Her kayıt birbirinden farklı olduğu için bize her defasında farklı bi yol dönecektir,bu yüzden bizde SqlCommand nesnemizin ExecuteScalar methodunu kullanıyoruz ve bize gönderdiğimiz IcerikID'nin yolunu geri döndrüyor.
}
catch (Exception)
{
}
#region Video Izlenme İşlemleri
//Öncelikle tıkladığımız videonun veri tabanından kaçkere izlendiğini çekioyuruz.
SqlCommand cmdIzlenmeGetir = new SqlCommand("Select IcerikIzlenme from Icerik Where IcerikID=@Link", con);
cmdIzlenmeGetir.Parameters.AddWithValue("@Link", Link.ToString());
int Izlenme = Convert.ToInt32(cmdIzlenmeGetir.ExecuteScalar());
Izlenme++;//Gelen veriye bir ekliyoruz.
SqlCommand cmdIzlenmeUpdate = new SqlCommand("Update Icerik Set IcerikIzlenme=@IcerikIzlenme Where IcerikID=@Link", con);
try
{
cmdIzlenmeUpdate.Parameters.AddWithValue("@IcerikIzlenme", Izlenme);
cmdIzlenmeUpdate.Parameters.AddWithValue("@Link", Link.ToString());
cmdIzlenmeUpdate.ExecuteNonQuery();//Bir eklediğimiz izlenme değerini eskisi ile tekrar değiştiriyoruz böylece video her izlendiğinde IcerikIzlenme alanımızı bir artırmış oluyoruz.
}
catch (Exception)
{
}
if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!
con.Close();
#endregion
return link;//Burda tıklanan videonun yolunu geri döndüryoruz.
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
if (Session["durum"].ToString() != "1")
Response.Redirect("UyeGiris.aspx");
}
catch (Exception)
{
Response.Redirect("UyeGiris.aspx");
}
}
}
protected void btnMakaleGonder_Click(object sender, EventArgs e)
{
SqlCommand cmdYorumInsert = new SqlCommand("Insert Into Yorum(IcerikID,Yorum,YorumDurum,YorumYazan) Values(@IcerikID,@Yorum,0,@YorumYazan)", con);//Burada SqlCommand nesnemizi kullanarak kayıt ekleme işlemini gerçekleştiriyoruz.Farkketiyseniz Values kısmında parametre kullandık "@" ile başlayanlar paramtredir.
cmdYorumInsert.Parameters.AddWithValue("@IcerikID", Request.Params["ID"].ToString()); //
cmdYorumInsert.Parameters.AddWithValue("@Yorum", txtYorum.Text); //
cmdYorumInsert.Parameters.AddWithValue("@YorumYazan", txtIsımSoyisim.Text); //Bu kısımlarda Yukarda yazdığımız Insert sql cümlesine parametre değerlerini gönderiyoruz
if (ConnectionState.Closed == con.State)//Burda bağlantı durumunu kontrol ettik dedikki eğer bizim con diye oluşturduğumuz bağlantı nesnemizin bağlantı durumu kapalıysa bağlantıyı aç!
con.Open();
try
{
cmdYorumInsert.ExecuteNonQuery(); // Ekleme olayının gerçekleştiği kısım burasıdır o yüzden ekleme esnasında bi problem olursa burda olacaktır.Bizde kaydımız eklendimi eklenmedimi kullanıcıya göstermek isteriz o yüzden try catch blokları arasına aldık.Try bloklarının içersine yazdığımız herhangi bir kod hata verirse o satırdan direk catch blokları arasına atlar ve sizde hata vermesi durumunda farklı işlemler yaptırabilrisiniz.
lblDurum.Visible = true; //Labelimizn visible özelliğini false yaptığımız için sayfamız açıldığında görmeyecektir.Hata vermesi durumunda Labelimizi artık gösteriyoruz ve ilgili mesajı yazıyoruz.
lblDurum.Text = "Yorum Eklendi";
DataList3.DataBind(); //Buralarda DataList nesnemizi yenilioyurz,yorumlar tablomuzda bir değişiklik yapıldıysa kullanıcıya yansıması için.
SqlDataSource6.DataBind(); //
}
catch (Exception)
{
lblDurum.Visible = true;
lblDurum.Text = "Yorum Eklenmedi";
}
if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!
con.Close();
}
}