using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading;
namespace caThreadSqlUpdate
{
class Program
{
private static SqlConnection cnn = new SqlConnection("Data Source=10.130.214.200,8585;Initial Catalog=ERecete;User Id=kullanici;Password=sifre;");
static void Main(string[] args)
{
if (cnn.State != ConnectionState.Open)
{
cnn.Open();
}
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select ereceteIlacListe_id,barkod FROM dbo.EReceteIlacListesi";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
Dictionary<IAsyncResult, Action<int, string>> li = new Dictionary<IAsyncResult, Action>();
int i = 0;
foreach (DataRow row in ds.Tables[0].Rows)
{
i++;
Action<int, string> act = f_BarkodGuncelle;
IAsyncResult ai = act.BeginInvoke((int)row[0], (string)row[1], delegate { Console.WriteLine("Bitti: " + row[0] + " ve " + row[1]); }, null);
li.Add(ai, act);
if (i == 5)
{
break;
}
}
while (true)
{
foreach (var key in li.Keys)
{
if (key.IsCompleted && li[key] == null)
{
Console.WriteLine("End invoke çağırdım");
li[key].EndInvoke(key);
li[key] = null;
}
}
Thread.Sleep(1000);
}
}
static public void f_BarkodGuncelle(int _iIlacId, string _sBarkod)
{
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = String.Format("UPDATE dbo.yedekEReceteIlaclari SET barkod={0} WHERE refEreceteIlacListe_id={1} ", _sBarkod, _iIlacId);
cmd.ExecuteNonQuery();
}
}
}
Aklımda Kalası Kelimeler
* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
Dictionary etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Dictionary etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
2 Nisan 2013 Salı
Action kullanarak multi thread sql update
Etiketler:
Action,
BeginInvoke,
Dictionary,
EndInvoke,
IAsyncResult,
ParameterizedThreadStart,
Thread
Kaydol:
Yorumlar (Atom)