none
c# sql ajanda RRS feed

  • Genel Tartışma

  • merhaba ben bir ajanda yapıyorum uygulamada etkinlik ekliyorum etkinlik saat ve tarihi geldiğinde mail atsın istiyorum ancak  ekleme kısmından sonrasını yapamadım yardımcı olurmusunuz.

    kodlar:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public string baglantiYolu = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Sony\Documents\ajandam.mdf;Integrated Security = True; Connect Timeout = 30";
            
            public Form1()
            {
                InitializeComponent();
            }

            public void Ekle(string konu, string tarih, string saat)
            {
                SqlConnection baglanti = new SqlConnection(baglantiYolu);

                SqlCommand komut = new SqlCommand();
                komut.Connection = baglanti;
                komut.CommandType = CommandType.Text;
                komut.CommandText = "insert into liste values (@pkonu,@ptarih,@psaat)";

                SqlParameter p1 = new SqlParameter("@pkonu", konu);
                komut.Parameters.Add(p1);
                SqlParameter p2 = new SqlParameter("@ptarih", tarih);
                komut.Parameters.Add(p2);
                SqlParameter p3 = new SqlParameter("@psaat", saat);
                komut.Parameters.Add(p3);
                
                baglanti.Open();
                komut.ExecuteNonQuery();
                baglanti.Close();


            }

            private void tabPage1_Click(object sender, EventArgs e)
            {

            }

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {

            }

            private void button1_Click(object sender, EventArgs e)
            {
                Ekle(richTextBox1.Text,dateTimePicker1.Text, comboBox1.Text);
                MessageBox.Show("Eklendi");
            }

            public DataSet Bul(string konu)
            {
                SqlConnection baglanti = new SqlConnection(baglantiYolu);
                SqlCommand komut = new SqlCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = " select * from liste where konu like @pkonu+'%' ";
                komut.Connection = baglanti;

                SqlParameter p1 = new SqlParameter("@pkonu", konu);
                komut.Parameters.Add(p1);

                SqlDataAdapter adaptor = new SqlDataAdapter();
                adaptor.SelectCommand = komut;

                DataSet bulunanlar = new DataSet();
                baglanti.Open();
                adaptor.Fill(bulunanlar);
                baglanti.Close();

                return bulunanlar;



            }

            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                DataSet bulunanlar = new DataSet();
                bulunanlar = Bul(textBox1.Text);
                dataGridView1.DataSource = bulunanlar.Tables[0];
            }

            private void button3_Click(object sender, EventArgs e)
            {
                SqlConnection baglanti = new SqlConnection(baglantiYolu);
                SqlCommand komut = new SqlCommand();
                komut.Connection = baglanti;
                komut.CommandType = CommandType.Text;
                komut.CommandText = "delete from liste where ID=@pId";

                int Id = (int)dataGridView1.SelectedRows[0].Cells[0].Value;

                komut.Parameters.AddWithValue("@pID", Id);
                baglanti.Open();
                komut.ExecuteNonQuery();
                baglanti.Close();
                MessageBox.Show("Silindi");
            }

            private void dataGridView1_SelectionChanged(object sender, EventArgs e)
            {

                if (dataGridView1.SelectedRows.Count > 0)
                {
                    DataGridViewRow secilenSatir = dataGridView1.SelectedRows[0];
                    int Id = (int)secilenSatir.Cells[0].Value;
                    richTextBox2.Text = secilenSatir.Cells[1].Value.ToString();
                    dateTimePicker2.Text = secilenSatir.Cells[2].Value.ToString();
                    comboBox5.Text = secilenSatir.Cells[3].Value.ToString();
                    
                }
            }

            private void button2_Click(object sender, EventArgs e)
            {
                SqlConnection baglanti = new SqlConnection(baglantiYolu);
                SqlCommand komut = new SqlCommand();
                komut.Connection = baglanti;
                komut.CommandType = CommandType.Text;
                komut.CommandText = "update liste set konu=@pkonu,tarih=@ptarih,saat=@psaat where Id=@pId";

                komut.Parameters.AddWithValue("@pkonu", richTextBox2.Text);
                komut.Parameters.AddWithValue("@ptarih", dateTimePicker2.Text);
                komut.Parameters.AddWithValue("@psaat", comboBox5.Text);
            

                int Id = (int)dataGridView1.SelectedRows[0].Cells[0].Value;
                komut.Parameters.AddWithValue("@pId", Id);


                baglanti.Open();
                komut.ExecuteNonQuery();
                baglanti.Close();
                MessageBox.Show("Düzenlendi");
            }

    6 Temmuz 2015 Pazartesi 07:14

Tüm Yanıtlar

  • Saati geldiğinde mail atması için bir console application oluşturup içerisine database üzerinden etkinliğinizi çekip mail atan kodları yazdıktan sonra bu uygulamayı Task Scheduler Service içerisine ekleyip dakikada bir çalışacak şekilde ayarlarsanız her dakika çalışıp saati gelen etkinlik var mı diye DB den datayı çekebilirsiniz eğer etkinlik var ise mail gönderirsiniz.

    Saati geldiğinde mail atma işlemini bu şekilde yapabilirsiniz.

    6 Temmuz 2015 Pazartesi 08:21
  • yanıtınız için teşekkürler . yeni yeni başladım çok iyi değilim programlada. söylediğiniz yöntemi araştırayım. birde bu şekilde yaptığımda bilgisayar kapalı iken kontrol ve mail işlemi olurmu
    6 Temmuz 2015 Pazartesi 08:37
  • Malesef bilgisayar kapalıyken olmaz.
    6 Temmuz 2015 Pazartesi 15:14
  • konsol ile yaptım ancak mail göndermiyo şart kısmını yapamadım sanırım yardımcı olur musunuz. bide mail body kısmında çektiğim etkinliği atmasını istiyorum nasıl yaparım?

    using System;

    using System.Net.Mail;

    using System.Net;

    using System.Data.SqlClient;

    public class Program

    {
        
        static void Main(string[] args)

        {
            SqlConnection baglanti = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Sony\Documents\ajanda.mdf;Integrated Security=True;Connect Timeout=30");
            SqlCommand komut = new SqlCommand();
            komut.Connection = baglanti;
            baglanti.Open();
            komut = new SqlCommand("Select konu From liste Where tarih='" + DateTime.Now.ToShortDateString() + "'", baglanti);
            komut.Parameters.AddWithValue("@tarih", DateTime.Now.ToShortDateString());
            SqlDataAdapter da = new SqlDataAdapter(komut);
            SqlDataReader oku = komut.ExecuteReader();
           
            
            

            while (oku.Read())
           
            {
        


            SmtpClient sc = new SmtpClient();

            sc.Port = 587;
               
            sc.Host = "smtp.live.com";

            sc.EnableSsl = true;

            sc.Timeout = 50000;



           sc.Credentials = new NetworkCredential("gönderici@hotmail.com", "şifre");

     

            MailMessage mail = new MailMessage();

     

            mail.From = new MailAddress("dilaragormez1@hotmail.com", "dilara");

     

            mail.To.Add("alıcı@gmail.com");
     

            mail.Subject = "süre doldu";

            mail.IsBodyHtml = true;

            mail.Body = "";


            sc.Send(mail);
            }
      
            baglanti.Close();

        }

    }

    9 Temmuz 2015 Perşembe 07:50
  • konsol ile yaptım ancak mail göndermiyo şart kısmını yapamadım sanırım yardımcı olur musunuz. bide mail body kısmında çektiğim etkinliği atmasını istiyorum nasıl yaparım?

    using System;

    using System.Net.Mail;

    using System.Net;

    using System.Data.SqlClient;

    public class Program

    {
        
        static void Main(string[] args)

        {
            SqlConnection baglanti = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Sony\Documents\ajanda.mdf;Integrated Security=True;Connect Timeout=30");
            SqlCommand komut = new SqlCommand();
            komut.Connection = baglanti;
            baglanti.Open();
            komut = new SqlCommand("Select konu From liste Where tarih='" + DateTime.Now.ToShortDateString() + "'", baglanti);
            komut.Parameters.AddWithValue("@tarih", DateTime.Now.ToShortDateString());
            SqlDataAdapter da = new SqlDataAdapter(komut);
            SqlDataReader oku = komut.ExecuteReader();
           
            
            

            while (oku.Read())
           
            {
        


            SmtpClient sc = new SmtpClient();

            sc.Port = 587;
               
            sc.Host = "smtp.live.com";

            sc.EnableSsl = true;

            sc.Timeout = 50000;



           sc.Credentials = new NetworkCredential("gönderici@hotmail.com", "şifre");

     

            MailMessage mail = new MailMessage();

     

            mail.From = new MailAddress("dilaragormez1@hotmail.com", "dilara");

     

            mail.To.Add("alıcı@gmail.com");
     

            mail.Subject = "süre doldu";

            mail.IsBodyHtml = true;

            mail.Body = "";


            sc.Send(mail);
            }
      
            baglanti.Close();

        }

    }

    sorunu çözdüm veri tabanında tarih türünü varchar yapınca düzeldi. mailbody kısmını da şu şekilde yaptım:

    mail.Body = oku["konu"].ToString();

    13 Temmuz 2015 Pazartesi 11:18
  • Best Solution 1

    Mail Blog Web Site

    13 Temmuz 2015 Pazartesi 11:45