Selamlar... 
TFS'ten, bir ekip içerisinde proje geliştirirken tüm ekibple beraber projenin yürütülmesini sağlamak, geçmiş sürümleri saklamak, farklı ortamlardan projelere erişim,...vs işlerde faydalanılabilir.
TFS ile ilgili daha detaylı bilgi için https://www.visualstudio.com/tr-tr/products/tfs-overview-vs.aspx adresi ziyaret edilebilir.
TFS'e Visual Studio 2012/2013'ten erişim aşağıdaki şekilde yapılabiliyor:
Peki TFS 2012 sunucusuna Visual Studio 2008 içerisinden nasıl erişebiliriz?
Bunun için ufak bir kaç püf noktasını bilmemiz gerekiyor.
Buradaki arkadaşın da dediği gibi;
- Visual Studio'da Yardım menüsü altında "About Microsoft Visual Studio" seçeneğini seçiyoruz.
- Microsoft Visual Studio 2008 Team Explorer Version 9.0.???? gibi bir girdi var mı kontrol ediyoruz.
Daha sonra Tools -> Options altında Source Control seçeneğinden "Team Foundation Server" seçilmeli.
Tools -> Connect To Team Foundation Server seçeneği ile TFS sunucusuna bağlanılabilir.
TFS sürümüne göre uyumluluk yaması yüklemek gerekebilir:
Visual Studio 2008'de bir farklılık da sunucu adresinin yazımında var.
http://192.168.0.???:8080/tfs/DefaultCollection/
şeklinde yazmak gerekiyor.
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar... 


Çalıştığım firmada şöyle bir ihtiyacımız oldu. Canlı veritabanın yedeğini her gün bir arşiv sunucusuna yükleyip raporları buradan almamız icabetti.
Şu şekilde bir çözüme gittik.
Bir C# konsol uygulaması yazdık.
Bunu da Windows zamanlanmış görevlere yedeğin ortalama tamamlanma süresinden 1 saat kadar sonraya.
Uygulama şu şekilde çalışıyor:
- Veritabanı yedeği bir NAS cihazında(bir yedekleme sunucusunda).
- Öncelikle o sunucuya kullanıcı adı-şifre doğrulaması ile bağlanıp yedek dosyasını arşiv sunucusuna(uygulamamızın çalıştığı sunucu) alıyoruz.
- Yedekleme sunucusunda çok sayıda yedek olduğundan en güncel yedeği bulup kopyalıyor uygulamamız.
- Sonra yedeği arşiv sunucusuna kopyaladığımız yedek dosyasını veritabanına yüklüyoruz..
- Sonra yedek dosyamızı siliyoruz.
- Son olarak işlem ile ilgili bilgilendirme mesajı atıyoruz.
- Uygulamanın başlangıç ayarlarını normalde bir xml dosyasından alıyorum, ancak burada direkt kodun içinden alacak şekilde yazdım. 


Program.cs
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
namespace VtYedekYukleMesajAt
{
    class Program
    {
        private static string _uygulamaDizini = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        private static string _sunucuAdresi = @"\\192.168.0.101\sqlbackup";
        private static string _sunucudakiYedekDosyaYolu = @"\\Z:\VERITABANI_backup_2015_06_16_020000_8320823.bak";
        private static string _veritabaniAdi = "VERITABANI";
        private static string _yedekDosyaYolu = _uygulamaDizini + "\\VERITABANI_Yedek.bak";
        private static string _sunucuAdi = @"\\192.168.0.55";
        private static string _veritabaniKullaniciAdi = "sa";
        private static string _veritabaniSifre = "123456";
        private static string _sunucuKullaniciAdi = "sqlbackup";
        private static string _sunucuSifre = "123456";
        private static string _fizikselDataDosyasi = "VERITABANI.mdf";
        private static string _fizikselLogDosyasi = "VERITABANI.ldf";
        private static string _mantiksalDataDosyasi = "VERITABANI_Data";
        private static string _mantiksalLogDosyasi = "VERITABANI_Log";
        private static string _sunucuDomain = "firmaismi";
        private static string _agYoluHarfi = "Z:";
        private static string _bilgiEPostaAdresi = "zamkinos@firmaismi.com.tr";
        private static string _smtpAdi = "zamkinos@firmaismi.com.tr";
        private static string _smtpSifresi = "123456";
        private static DateTime _baslangicZamani;
        private static DateTime _bitisZamani;
        static void Main(string[] args)
        {
            try
            {
                _baslangicZamani = DateTime.Now;
   dosyayiKopyala(_sunucuKullaniciAdi, _sunucuSifre);
                yedegiYukle(_veritabaniAdi, _yedekDosyaYolu, _sunucuAdi, _veritabaniKullaniciAdi, _veritabaniSifre);
                dosyayiSil(_yedekDosyaYolu);
                _bitisZamani = DateTime.Now;
                epostaYolla(_sunucudakiYedekDosyaYolu);
            }
            catch (Exception ex)
            {
                hatayiYaz(ex);
            }
        }
        private static void epostaYolla(string sunucudakiYedekDosyaYolu)
        {
            EPosta.EPostaYolla(_bilgiEPostaAdresi, "<br />" + sunucudakiYedekDosyaYolu + " yedek dosyasi basariyla yuklendi.<br />Baslangic Zamani: (" + _baslangicZamani.ToString() + ")<br />Bitiş Zamani: (" + _bitisZamani.ToString() + ")", "Yedek Yukleme Islemi", "sql@firmaismi.com.tr", "Sql Yedek", _smtpAdi, _smtpSifresi, new EPostaEki[] { });
        }
        private static void dosyayiKopyala(string username, string password)
        {
            NetworkConnection objNetworkConnection = new NetworkConnection(_sunucuAdresi, new System.Net.NetworkCredential(_sunucuKullaniciAdi, _sunucuSifre, _sunucuDomain), _agYoluHarfi);
            _sunucudakiYedekDosyaYolu = _sunucuAdresi + "\\" + objNetworkConnection.DosyaYolu;
            File.Copy(_sunucudakiYedekDosyaYolu, _yedekDosyaYolu, true);
        }
        private static void dosyayiSil(string yedekDosyaYolu)
        {
            File.Delete(_yedekDosyaYolu);
        }
        private static void yedegiYukle(String databaseName, String backUpFile, String serverName, String userName, String password)
        {
            ServerConnection conn = new ServerConnection(serverName, userName, password);
            conn.StatementTimeout = int.MaxValue;
            //conn.ServerInstance = serverName;
            Server srv = new Server(conn);
            int satir = 0;
            try
            {
                // Generate new FilePath for both Files.
                string fileMdf = System.IO.Path.Combine(srv.MasterDBPath, _fizikselDataDosyasi);
                string fileLdf = System.IO.Path.Combine(srv.MasterDBLogPath, _fizikselLogDosyasi);
                RelocateFile relocateMdf = new RelocateFile(_mantiksalDataDosyasi, fileMdf);
                RelocateFile relocateLdf = new RelocateFile(_mantiksalLogDosyasi, fileLdf);
                Restore res = new Restore();
                res.Devices.AddDevice(backUpFile, DeviceType.File);
                res.RelocateFiles.Add(relocateMdf);
                res.RelocateFiles.Add(relocateLdf);
                res.Database = databaseName;
                res.NoRecovery = false;
                res.ReplaceDatabase = true;
                satir = 1;
                srv.KillAllProcesses(databaseName); // 26.01.2016.
                satir = 2;
                res.SqlRestore(srv);
                satir = 3;
                conn.Disconnect();
            }
            catch (SmoException ex)
            {
                hatayiYaz(ex);
                throw new SmoException("[SmoException]:" + satir + ex.Message, ex.InnerException);
            }
            catch (IOException ex)
            {
                hatayiYaz(ex);
                throw new IOException("[IOException]:" + satir + ex.Message, ex.InnerException);
            }
            catch (Exception ex)
            {
                hatayiYaz(ex);
                throw new Exception("[Exception]:" + satir + ex.Message, ex.InnerException);
            }
        }
        private static void hatayiYaz(Exception ex)
        {
            StreamWriter file = new StreamWriter(_uygulamaDizini + "\\Hata.txt", true);
            file.WriteLine(Environment.NewLine + "=================");
            file.WriteLine("Tarih:" + DateTime.Now.ToString() + Environment.NewLine);
            file.WriteLine("Ex:(" + ex.Message + "), InnerEx:(" + ex.InnerException + ")");
            file.Close();
        }
    }
}


NetworkConnection.cs
using System;
using System.ComponentModel;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
namespace VtYedekYukleMesajAt
{
    public class NetworkConnection : IDisposable
    {
        #region Private Members
        private string _networkName;
        [DllImport("mpr.dll")]
        private static extern int WNetAddConnection2(NetResource netResource, string password, string username, int flags);
        [DllImport("mpr.dll")]
        private static extern int WNetCancelConnection2(string name, int flags, bool force);
        #endregion Private Members
        #region Public Members
        /// <summary>
        /// 
        /// </summary>
        public string DosyaYolu;
        #endregion Public Members
        #region Constructor
        /// <summary>
        /// 
        /// </summary>
        /// <param name="networkName"></param>
        /// <param name="credentials"></param>
        public NetworkConnection(string networkName, NetworkCredential credentials, string agYoluHarfi)
        {
            _networkName = networkName;
            var netResource = new NetResource()
            {
                Scope = ResourceScope.GlobalNetwork,
                ResourceType = ResourceType.Disk,
                DisplayType = ResourceDisplaytype.Share,
                RemoteName = networkName
            };
            var userName = string.IsNullOrEmpty(credentials.Domain)
                ? credentials.UserName
                : string.Format(@"{0}\{1}", credentials.Domain, credentials.UserName);
            var result = WNetAddConnection2(
                netResource,
                credentials.Password,
                userName,
                0);
            if (result != 0)
            {
                if (result == 1219) // Zaten baglanti var...
                {
                    System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
                    foreach (var drive in drives)
                    {
                        if (drive.Name.Equals(agYoluHarfi.Replace("\\", "").Replace(":", "")) && drive.DriveType == DriveType.Network)
                        {
                            DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(agYoluHarfi);
                            guncelDosyayiBul(hdDirectoryInWhichToSearch);
                            break;
                        }
                    }
                    if (string.IsNullOrEmpty(this.DosyaYolu))
                    {
                        DirectoryInfo hdDirectoryInWhichToSearch2 = new DirectoryInfo(networkName);
                        guncelDosyayiBul(hdDirectoryInWhichToSearch2);
                    }
                }
                else
                {
                    throw new Win32Exception(result, "Error connecting to remote share");
                }
            }
            else
            {
                DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(networkName);
                guncelDosyayiBul(hdDirectoryInWhichToSearch);
            }
        }
        #endregion Constructor
        #region Private Methods
        private void guncelDosyayiBul(DirectoryInfo hdDirectoryInWhichToSearch)
        {
            FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + "VERITABANI" + "*.bak*");
            DateTime oncekiTarih = DateTime.MinValue;
            foreach (FileInfo foundFile in filesInDir)
            {
                if (oncekiTarih != DateTime.MinValue)
                {
                    if (oncekiTarih < foundFile.CreationTime.Date)
                    {
                        this.DosyaYolu = foundFile.Name;
                        oncekiTarih = foundFile.CreationTime.Date;
                    }
                }
                else
                {
                    oncekiTarih = foundFile.CreationTime.Date;
                    this.DosyaYolu = foundFile.Name;
                }
            }
        }
        #endregion Private Methods
        #region Public Methods
        ~NetworkConnection()
        {
            Dispose(false);
        }
        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        protected virtual void Dispose(bool disposing)
        {
            WNetCancelConnection2(_networkName, 0, true);
        }
        #endregion Public Methods
    }
    /// <summary>
    /// 
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public class NetResource
    {
        /// <summary>
        /// 
        /// </summary>
        public ResourceScope Scope;
        /// <summary>
        /// 
        /// </summary>
        public ResourceType ResourceType;
        /// <summary>
        /// 
        /// </summary>
        public ResourceDisplaytype DisplayType;
        /// <summary>
        /// 
        /// </summary>
        public int Usage;
        /// <summary>
        /// 
        /// </summary>
        public string LocalName;
        /// <summary>
        /// 
        /// </summary>
        public string RemoteName;
        /// <summary>
        /// 
        /// </summary>
        public string Comment;
        /// <summary>
        /// 
        /// </summary>
        public string Provider;
    }
    /// <summary>
    /// 
    /// </summary>
    public enum ResourceScope : int
    {
        /// <summary>
        /// 
        /// </summary>
        Connected = 1,
        /// <summary>
        /// 
        /// </summary>
        GlobalNetwork,
        /// <summary>
        /// 
        /// </summary>
        Remembered,
        /// <summary>
        /// 
        /// </summary>
        Recent,
        /// <summary>
        /// 
        /// </summary>
        Context
    };
    /// <summary>
    /// 
    /// </summary>
    public enum ResourceType : int
    {
        /// <summary>
        /// 
        /// </summary>
        Any = 0,
        /// <summary>
        /// 
        /// </summary>
        Disk = 1,
        /// <summary>
        /// 
        /// </summary>
        Print = 2,
        /// <summary>
        /// 
        /// </summary>
        Reserved = 8
    }
    /// <summary>
    /// 
    /// </summary>
    public enum ResourceDisplaytype : int
    {
        /// <summary>
        /// 
        /// </summary>
        Generic = 0x0,
        /// <summary>
        /// 
        /// </summary>
        Domain = 0x01,
        /// <summary>
        /// 
        /// </summary>
        Server = 0x02,
        /// <summary>
        /// 
        /// </summary>
        Share = 0x03,
        /// <summary>
        /// 
        /// </summary>
        File = 0x04,
        /// <summary>
        /// 
        /// </summary>
        Group = 0x05,
        /// <summary>
        /// 
        /// </summary>
        Network = 0x06,
        /// <summary>
        /// 
        /// </summary>
        Root = 0x07,
        /// <summary>
        /// 
        /// </summary>
        Shareadmin = 0x08,
        /// <summary>
        /// 
        /// </summary>
        Directory = 0x09,
        /// <summary>
        /// 
        /// </summary>
        Tree = 0x0a,
        /// <summary>
        /// 
        /// </summary>
        Ndscontainer = 0x0b
    }
}


EPosta.cs
using System;
using System.IO;
using System.Net.Mail;
using System.Text;
namespace VtYedekYukleMesajAt
{
    public class EPosta
    {
        public static string UygulamaDizini = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        public static void EPostaYolla(string to, string body, string subject, string fromAddress, string fromDisplay, string credentialUser, string credentialPassword, params EPostaEki[] attachments)
        {
            string host = "mail.firmaismi.com.tr";
            //body = UpgradeEmailFormat(body);
            try
            {
                MailMessage mail = new MailMessage();
                mail.Body = body;
                mail.IsBodyHtml = true;
                mail.To.Add(new MailAddress(to));
                mail.From = new MailAddress(fromAddress, fromDisplay, Encoding.UTF8);
                mail.Subject = subject;
                mail.SubjectEncoding = Encoding.UTF8;
                mail.Priority = MailPriority.Normal;
                foreach (EPostaEki ma in attachments)
                {
                    mail.Attachments.Add(ma.File);
                }
                SmtpClient smtp = new SmtpClient();
                smtp.Credentials = new System.Net.NetworkCredential(credentialUser, credentialPassword);
                smtp.Host = host;
                smtp.Send(mail);
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("\nTo:" + to);
                sb.Append("\nbody:" + body);
                sb.Append("\nsubject:" + subject);
                sb.Append("\nfromAddress:" + fromAddress);
                sb.Append("\nfromDisplay:" + fromDisplay);
                sb.Append("\ncredentialUser:" + credentialUser);
                sb.Append("\ncredentialPasswordto:" + credentialPassword);
                sb.Append("\nHosting:" + host);
                sb.Append("\nException:" + ex.Message);
                // Write the string to a file.
                StreamWriter file = new StreamWriter(UygulamaDizini + "\\Hata.txt", true);
                file.WriteLine(Environment.NewLine + "=================");
                file.WriteLine("Tarih:" + DateTime.Now.ToString() + Environment.NewLine);
                file.WriteLine(sb.ToString());
                file.Close();
                //ErrorLog(sb.ToString(), ex.ToString(), ErrorLogCause.EmailSystem);
            }
        }
    }
}


Saygılar...
# Kategoriler : C# Sql Server Veritabanı Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
MVC ile ExtJs kullanarak excel çıktısı alma işlemine http://zamkinos.net/blog/Posts.aspx?PostID=5 yazımızda değinmiştik.
Kabaca tarif etmek gerekirse; js dosyamızda yazdığımız adresi Controller sınıfının içinde tanımladığımızda çağırabiliyorduk.
Web Form'da da WebMethod tanımlayarak istemci tarafından sunucu tarafındaki metotlara erişebiliyoruz.
Ancak iş excel'den çıktı almaya geldiğinde Web Method işimizi çözmüyor.
İnternette araştırdığım yerlerin tümündeki çözümler işe yaramadı ve bu excel çıktısı işini bir aspx sayfası yaparak çözme yoluna gittim.
Javascript tarafında bir form oluşturup, parametrelerimizi ekliyoruz. Aşağıdaki fonksiyonu bir excele çıktı butonunun click olayında tetikleyebiliriz.
    function formuPostalaExcel() {
        var form = new Ext.form.Panel({});
        form.getForm().submit({
            timeout: 120000,
            hidden: true,
            standardSubmit: true,
            url: 'ExcelExport.aspx',
            params: {
                param1: Ext.getCmp('txtParam1').getValue(),
                param2: Ext.getCmp('txtParam2').getValue(),
                param3: Ext.getCmp('txtParam3').getValue(),
                param4: Ext.getCmp('txtParam4').getValue(),
                param5: Ext.getCmp('txtParam5').getValue()
            },
            failure: function (form, action) {
                alert(action);
            }
        });
    }
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ExcelCikti
{
    public partial class ExcelExport : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string param1 = Request.Params["param1"].ToString();
            string param2 = Request.Params["param2"].ToString();
            string param3 = Request.Params["param3"].ToString();
            string param4 = Request.Params["param4"].ToString();
            string param5 = Request.Params["param5"].ToString();
            List<Musteri> lst = musterileriGetir(param1, param2, param3, param4, param5);
            StringBuilder sb = GenelIslemler.List2ExcelSb(lst); // http://zamkinos.net/blog/Posts.aspx?PostID=5 
            string sFileName = "MusteriListesi_" + GenelIslemler.strTarihiGetir() + ".xls";
            Response.AppendHeader("content-disposition", "attachment;filename=" + sFileName);
            Response.ContentType = "application/ms-excel";
            Response.ContentEncoding = Encoding.Unicode;
            Response.BinaryWrite(Encoding.Unicode.GetPreamble());
            Response.ContentType = "application/vnd.ms-excel";
            Response.Write(sb.ToString());
            Response.End();
        }
        private List<Musteri> musterileriGetir(string param1, string param2, string param3, string param4, string param5)
        {
            VeritabaniIslemleri vtIslem = new VeritabaniIslemleri();
            DataTable dtMaddeler = vtIslem.ReturnDataTable("SELECT Adi, No FROM Musteri"); // parametreler de eklenecek duruma göre.
            List<Madde> lst = new List<Madde>();
            foreach (DataRow dr in dtMaddeler.Rows)
            {
                lst.Add(new Musteri()
                {
                    Adi = dr["Adi"].ToString(),
                    No = dr["No"].ToString()
                });
            }
            return lst;
        }
    }
}
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...

Gene gerçek bir örnek üzerinden gidelim.
Edefter için Maliye'den paylaşılan stil dosyaları var. Ona uygun XML hazırlandığında uygun bir şekilde görüntülenmesini sağlıyor.
Bu XML dosyaları HTML biçiminde görüntüleniyor ama boyutları çok büyük olduğundan tarayıcıda açmakta sıkıntı yaşanıyor.
Oysa bu dosyaları PDF'ye çevirsek hem boyutu küçülüyor, hem de çok rahatlıkla görüntülenebiliyor.
Piyasada bunu yapan ücretli programlar var.
Peki ama bunu ücretsiz bir şekilde nasıl yaparız?
NReco.PdfGenerator diye bir DLL var ücretsiz. Ben bunu kullandım.
using NReco.PdfGenerator;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using System.Xml.Xsl;
namespace Xml2Pdf
{
    public partial class Xml2Pdf : Form
    {
        public Xml2Pdf()
        {
            InitializeComponent();
        }
         
        private void btnXml2Pdf_Click(object sender, EventArgs e)
        {
            DirectoryInfo di = Directory.CreateDirectory("C:\\XmlPdf\\");
            string xsltYevmiye = "yevmiye.xslt";
            string xsltKebir = "kebir.xslt";
            string xsltBerat = "berat.xslt";
            string xsltAdres = "";
            lblBaslangicZamani2.Text = DateTime.Now.ToString("");
            dizinSecimDialog.SelectedPath = @"\\10.0.0.1\EDEFTER";
            DialogResult result = dizinSecimDialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                string[] files = Directory.GetFiles(dizinSecimDialog.SelectedPath,
 "*.xml", SearchOption.AllDirectories);
                foreach (string file in files)
                {
                    string htmlDosyasi = di.FullName + 
Path.GetFileName(file).Replace(".xml", ".html");
                    string pdfDosyasi = di.FullName + 
Path.GetFileName(file).Replace(".xml", ".pdf");
                    if (file.IndexOf("-KB-") > 0)
                    {
                        xsltAdres = xsltBerat;
                    }
                    else if (file.IndexOf("-YB-") > 0)
                    {
                        xsltAdres = xsltBerat;
                    }
                    else if (file.IndexOf("-K-") > 0)
                    {
                        xsltAdres = xsltKebir;
                    }
                    else if (file.IndexOf("-Y-") > 0)
                    {
                        xsltAdres = xsltYevmiye;
                    }
                    else
                    {
                        throw new Exception("Tanımsız şema tipi:(" + file + ")");
                    }
                    pdfOlustur(xsltAdres, file, htmlDosyasi, pdfDosyasi);
                }
                MessageBox.Show("Pdf dosyaları " + di.FullName 
+ " dizini altında oluşturulmuştur.", "İşlem Başarılı", MessageBoxButtons.OK, 
MessageBoxIcon.Information);
                lblBitisZamani2.Text = DateTime.Now.ToString("");
            }
        }
        private void pdfOlustur(string xsltAdres, string file, 
string htmlDosyasi, string pdfDosyasi)
        {
            XslCompiledTransform xslt = new XslCompiledTransform();
            xslt.Load(Path.GetDirectoryName(file) + "\\" + xsltAdres);
            xslt.Transform(file, htmlDosyasi);
            HtmlToPdfConverter htmlToPdf = new HtmlToPdfConverter();
            htmlToPdf.GeneratePdfFromFile(htmlDosyasi, null, pdfDosyasi);
        }
    }
}


Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Microsoft'un çeviri hizmeti veren Bing Translator uygulamasını C# ile basit bir şekilde çağırabiliyoruz.
Ancak öncelikle bir Microsoft hesabımız olması gerekiyor.
Yoksa eğer şuradan oluşturabilirsiniz: https://signup.live.com/
Daha sonra https://datamarket.azure.com/home adresine girip
My Account -> Developer -> Register yolunu izleyerek uygulamanızı kaydediyorsunuz.
Bu şekilde size bir anahtar veriyor. Bu uygulama adı ve anahtarı kodumuzda kullanacağız.
Uygulamanızın adını kaydettikten sonra Bing çevirim API'sine abone oluyorsunuz. Ayda 2.000.000 karakter bedava.
Daha fazlası için ücret ödemek zorundasınız.
Onun için de şu adresi kullanacaksınız: https://datamarket.azure.com/dataset/bing/microsofttranslator/
Eğer buraya kadar anlatılanlarla bir yere varamadıysanız, şu adreste resimli anlatım da mevcut: http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx
Çeviriyi yapan C# kodu da şu şekilde olmalı:
public static string metniCevir(string metin, string kaynakDil, string hedefDil)
{
    string clientID = "uygulama_adi";
    string clientSecret = "asdqwedasdasd2i546456eqxcvbcvbc45676c=";
    String strTranslatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
    String strRequestDetails = string.Format("grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com", HttpUtility.UrlEncode(clientID), HttpUtility.UrlEncode(clientSecret));
    System.Net.WebRequest webRequest = System.Net.WebRequest.Create(strTranslatorAccessURI);
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.Method = "POST";
    byte[] bytes = System.Text.Encoding.ASCII.GetBytes(strRequestDetails);
    webRequest.ContentLength = bytes.Length;
    using (System.IO.Stream outputStream = webRequest.GetRequestStream())
    {
        outputStream.Write(bytes, 0, bytes.Length);
    }
    System.Xml.XmlDocument xTranslation = new System.Xml.XmlDocument();
    try
    {
        System.Net.WebResponse webResponse = webRequest.GetResponse();
        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(AdmAccessToken));
        //Get deserialized object from JSON stream 
        AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());
        string txtToTranslate = metin;
        string headerValue = "Bearer " + token.access_token;
        string uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + System.Web.HttpUtility.UrlEncode(txtToTranslate) + "&from=" + kaynakDil + "&to=" + hedefDil;
        System.Net.WebRequest translationWebRequest = System.Net.WebRequest.Create(uri);
        translationWebRequest.Headers.Add("Authorization", headerValue);
        System.Net.WebResponse response = null;
        response = translationWebRequest.GetResponse();
        System.IO.Stream stream = response.GetResponseStream();
        System.Text.Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
        System.IO.StreamReader translatedStream = new System.IO.StreamReader(stream, encode);
        xTranslation.LoadXml(translatedStream.ReadToEnd());
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }
    Debug.WriteLine("Your Translation is: " + xTranslation.InnerText);
    return xTranslation.InnerText;
}
 
 
 metniCevir("Merhaba dünya", "tr", "en");
 
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar... 
C#'ta basit bir uygulama ile Excel dosyasındaki kayıtları Xml dosyasına aşağıdaki şekilde aktarabiliriz.
Kodları zip olarak indirmek isterseniz aşağıdaki adreslerden indirebilirsiniz:
http://www.divshare.com/download/8968533-745 (C#)
C# kodu şu şekilde:
        private string strDosyaTurleri = "Excel 2000-2003 Dosyaları|*.xls|Excel 2007 Dosyaları|*.xlsx";
        private string dosyaAdi = "";
        public static object tMissing = Type.Missing;
 
        public Excel2Xml()
        {
            InitializeComponent();
        }
 
        private void btnDosyaAc_Click(object sender, EventArgs e)
        {
            dosyaAc();
        }
 
        private void dosyaAc()
        {
            dosyaAcmaPenceresi.InitialDirectory = "C:/";
            dosyaAcmaPenceresi.Filter = strDosyaTurleri;
            dosyaAcmaPenceresi.Title = "Bir dosya seçin";
            dosyaAcmaPenceresi.ShowDialog();
            dosyaAdi = dosyaAcmaPenceresi.FileName;
            lblDosyaYolu.Text = dosyaAdi;
        }
 
        private void brnExcel2XML_Click(object sender, EventArgs e)
        {
            string str1 = "";
            object nesneHucreIcerik = null ;
            Microsoft.Office.Interop.Excel.Workbook wb1 = null;
            Microsoft.Office.Interop.Excel.Worksheet ws1 = null;
            Microsoft.Office.Interop.Excel.Range rng = null;
            int intBaslangic = Int32.Parse(txtBaslangicSatir.Text);
            int intBitis = Int32.Parse(txtBitisSatir.Text);
            int intCalismaSayfasiNo = Int32.Parse(txtCalismaSayfasiNo.Text);
            int intSayac = 1;
            int i = 0;
            string strKategoriAdi = "";
 
            System.Xml.XmlDocument xmlDokuman = new System.Xml.XmlDocument();
            xmlDokuman.LoadXml("<kok>");
            System.Xml.XmlNode nodKok = xmlDokuman.SelectSingleNode("/KOK");
            System.Xml.XmlNode nodKategori = null;
            System.Xml.XmlNode nodKelime = null;
 
            if (System.IO.File.Exists(dosyaAdi) == true) //Eğer dosya varsa girsin.
            {
                if (iseKontrollerTamam())
                {
                    Microsoft.Office.Interop.Excel.Application nesneExcel = new Microsoft.Office.Interop.Excel.Application();
                    wb1 = nesneExcel.Workbooks.Open(dosyaAdi, tMissing, tMissing, tMissing, tMissing, <br>tMissing, tMissing, tMissing, tMissing, tMissing, tMissing, tMissing, tMissing, tMissing, tMissing);
                    ws1 = (Microsoft.Office.Interop.Excel.Worksheet)wb1.Worksheets.get_Item(intCalismaSayfasiNo);
                    strKategoriAdi = TR2ENG(ws1.Name);
                    nodKategori = XMLIslemleri.newCH(nodKok, strKategoriAdi);
                    for (i = intBaslangic; i &amp;amp;lt;= intBitis; i  )
                    {
                        nodKelime = XMLIslemleri.newCH(nodKategori, "Kelime");
                        XMLIslemleri.setNAV(nodKelime, "ID", intSayac.ToString());
                        rng = ws1.get_Range(txtExcelKolonAdi_1.Text   i, txtExcelKolonAdi_1.Text   i);
                        nesneHucreIcerik = rng.Value2;
                        if (nesneHucreIcerik != null)
                        {
                            str1 = rng.Value2.ToString();
                        }
                        XMLIslemleri.setNV(nodKelime, txtXmlOzellikAdi_1.Text, str1);
                        rng = ws1.get_Range(txtExcelKolonAdi_2.Text   i, txtExcelKolonAdi_2.Text   i);
                        nesneHucreIcerik = rng.Value2;
                        if (nesneHucreIcerik != null)
                        {
                            str1 = rng.Value2.ToString();
                        }
                        XMLIslemleri.setNV(nodKelime, txtXmlOzellikAdi_2.Text, str1);
                        intSayac  ;
                    }
                    if (!strKategoriAdi.Equals(""))
                        xmlDokuman.Save(HataKayit.uygulamaYolu()   "/"   strKategoriAdi   ".xml");
                    wb1.Close(true, tMissing, tMissing);
                    nesneExcel.Quit();
                    nesneyiSonlandir(ws1);
                    nesneyiSonlandir(wb1);
                    nesneyiSonlandir(nesneExcel);
                    MessageBox.Show("Islem tamamdir.");
                }
            }
        }
 
        private bool iseKontrollerTamam()
        {
            if (txtCalismaSayfasiNo.Equals(""))
                return false;
            else if (txtExcelKolonAdi_1.Equals(""))
                return false;
            else if (txtExcelKolonAdi_2.Equals(""))
                return false;
            else if (txtXmlOzellikAdi_1.Equals(""))
                return false;
            else if (txtXmlOzellikAdi_2.Equals(""))
                return false;
            else if (txtBitisSatir.Equals(""))
                return false;
            else if (txtBaslangicSatir.Equals(""))
                return false;
            else return true;
        }//private bool iseKontrollerTamam()
 
        private void nesneyiSonlandir(object pNesne)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pNesne);
                pNesne = null;
            }
            catch (Exception ex)
            {
                pNesne = null;
                HataKayit.hataKontrolXml("Excel2XML.nesneyiSonlandir", ex.Message);
            }
            finally
            {
                GC.Collect();
            }
        }//private void nesneyiSonlandir(object pNesne)
 
        private string TR2ENG(string pStr)
        {
            pStr = pStr.ToUpper();
            pStr = pStr.Replace("Ğ", "G");
            pStr = pStr.Replace("Ü", "U");
            pStr = pStr.Replace("Ş", "S");
            pStr = pStr.Replace("İ", "I");
            pStr = pStr.Replace("Ö", "O");
            pStr = pStr.Replace("Ç", "C");
            pStr = pStr.Replace(" ", "_");
            return pStr;
        }
 
 
 Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Bilgisayarınızda bazı dosyalardan birden fazla olduğunda bunları bulup silmeye ihtiyaç olabilir.
İşte böyle bir ihtiyaçtan dolayı MukerrerleriBulSil programını yazmıştım.
Kaynak kodları zip dosyasının içinde.
İstediğiniz gibi kullanabilirsiniz.
Çalışma mantığı şu şekilde:
Bilgisayarınızdaki sürücüler yükleniyor programın açılışında.
Herhangi bir sürücü veya dizin seçiyorsunuz. (Bilgisayarım'ı seçerseniz tüm sürücüleri tarar.)
Sonra aramak istediğiniz dosya uzantısını seçiyorsunuz.
Fazla uzun sürmesin diye dosya uzantısı seçtiriyorum.
Sonra dizindeki belirtilen uzantıdaki aynı isimdeki dosyaları bulup grid'in içine dolduruyor.
Bunlar illa aynı olmak zorunda değil tabi.
Listeden silmek istediklerinizi seçip, seçilenleri sil dediğinizde mükerrer dosyalar siliniyor.
Kodu aşağıdaki adresten indirebilirsiniz:
http://www.divshare.com/download/14049617-7a9
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Management;
using System.IO;
using System.Collections;
using System.Security.AccessControl;
using System.Security.Principal;
 
namespace MukerrerleriBulSil
{
    public partial class frmMukerrer : Form
    {
        public frmMukerrer()
        {
            InitializeComponent();
        }
 
        Hashtable htDosyaYolu;
        Hashtable htMukerrerler;
        long lngIdx;
        long lngDizinSayac;
        string strKolonDosyaAdi;
        string strKolonDosyaYolu;
        string strKolonSec;
        string strKolonDosyaBoyut;
        Hashtable htYerelDisk;
        int intDiskSayac;
        int intPgMaks = 49999;
        private void frmMukerrer_Load(object sender, EventArgs e)
        {
            htYerelDisk = new Hashtable();
            intDiskSayac = 0;
            strKolonDosyaYolu = "Dosya Yolu";
            strKolonDosyaAdi = "Dosya Adi";
            strKolonDosyaBoyut = "Boyut";
            strKolonSec = "Sec";
            lngIdx = 0;
            htMukerrerler = null;
            htDosyaYolu = null;
            //
            pgBar.Maximum = intPgMaks;
            dosyaUzantilariniYukle();
            PopulateDriveList();
            DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn();
            ck.Name = strKolonSec;
            ck.Width = 50;
            gridMukerrerler.Columns.Insert(0, ck);
            gridMukerrerler.ReadOnly = false;
        }
 
        //This procedure populate the TreeView with the Drive list
        private void PopulateDriveList()
        {
            TreeNode nodeTreeNode;
            int imageIndex = 0;
            int selectIndex = 0;
 
            const int Removable = 2;
            const int LocalDisk = 3;
            const int Network = 4;
            const int CD = 5;
            //const int RAMDrive = 6;
 
            this.Cursor = Cursors.WaitCursor;
            //clear TreeView
            tvDizinler.Nodes.Clear();
            nodeTreeNode = new TreeNode("Bilgisayarim", 0, 0);
            tvDizinler.Nodes.Add(nodeTreeNode);
 
            //set node collection
            TreeNodeCollection nodeCollection = nodeTreeNode.Nodes;
 
            //Get Drive list
            ManagementObjectCollection queryCollection = getDrives();
            foreach (ManagementObject mo in queryCollection)
            {
                //foreach (PropertyData pd in mo.Properties)
                //    Console.WriteLine(pd.Name   " - "   pd.Value);
 
                switch (int.Parse(mo["DriveType"].ToString()))
                {
                    case Removable:            //removable drives
                        imageIndex = 5;
                        selectIndex = 5;
                        break;
                    case LocalDisk:            //Local drives
                        imageIndex = 6;
                        selectIndex = 6;
                        // Bilgisayarim secilmisse yerel diskleri tarayalim.
                        htYerelDisk.Add(intDiskSayac, mo["Name"].ToString()   "\\");
                        intDiskSayac  ;
                        break;
                    case CD:                //CD rom drives
                        imageIndex = 7;
                        selectIndex = 7;
                        break;
                    case Network:            //Network drives
                        imageIndex = 8;
                        selectIndex = 8;
                        break;
                    default:                //default to folder
                        imageIndex = 2;
                        selectIndex = 3;
                        break;
                }
                //create new drive node
                nodeTreeNode = new TreeNode(mo["Name"].ToString()   "\\", imageIndex, selectIndex);
 
                //add new node
                nodeCollection.Add(nodeTreeNode);
            }
            this.Cursor = Cursors.Default;
        }
 
        protected ManagementObjectCollection getDrives()
        {
            //get drive collection
            ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");
            ManagementObjectCollection queryCollection = query.Get();
 
            return queryCollection;
        }
 
        private void tvDizinler_Secildi(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            //Populate folders and files when a folder is selected
            this.Cursor = Cursors.WaitCursor;
 
            //get current selected drive or folder
            TreeNode nodeCurrent = e.Node;
 
            // eger Bilgisayarim secilirse buraya 3 defa giriyor ve sectirmiyordu. bu kontrol onun icin.
            if (nodeCurrent.Index == 0)
            {
                this.Cursor = Cursors.Default;
                return;
            }
 
            //clear all sub-folders
            nodeCurrent.Nodes.Clear();
 
            if (nodeCurrent.SelectedImageIndex == 0)
            {
                //Selected My Computer - repopulate drive list
                PopulateDriveList();
            }
            else
            {
                //populate sub-folders and folder files
                PopulateDirectory(nodeCurrent, nodeCurrent.Nodes);
            }
            this.Cursor = Cursors.Default;
        }
 
        protected void PopulateDirectory(TreeNode nodeCurrent, TreeNodeCollection nodeCurrentCollection)
        {
            TreeNode nodeDir;
            int imageIndex = 2;        //unselected image index
            int selectIndex = 3;    //selected image index
            string stringFullPath = "";
            string stringPathName = "";
            string[] stringDirectories = null;
 
            if (nodeCurrent.SelectedImageIndex != 0)
            {//populate treeview with folders                
                try
                {//check path                    
                    if (Directory.Exists(getFullPath(nodeCurrent.FullPath)) == false)
                    {
                        MessageBox.Show("Directory or path "   nodeCurrent.ToString()   " does not exist.");
                    }
                    else
                    {
                        stringDirectories = Directory.GetDirectories(getFullPath(nodeCurrent.FullPath));
 
                        //loop throught all directories
                        foreach (string stringDir in stringDirectories)
                        {
                            stringFullPath = stringDir;
                            stringPathName = GetPathName(stringFullPath);
                            //create node for directories
                            nodeDir = new TreeNode(stringPathName.ToString(), imageIndex, selectIndex);
                            nodeCurrentCollection.Add(nodeDir);
                        }
                    }
                }
                catch (IOException)
                {
                    MessageBox.Show("Hata: Surucu hazir degil ya da dizin yok!");
                }
                catch (UnauthorizedAccessException)
                {
                    MessageBox.Show("Hata: Surucu veya dizine erisim yetkisi yok!");
                }
                catch (Exception e)
                {
                    MessageBox.Show("Hata: ("   e   ")");
                }
            }
        }
 
        protected string GetPathName(string strPath)
        {
            //Get Name of folder
            string[] stringSplit = strPath.Split('\\');
            int _maxIndex = stringSplit.Length;
            return stringSplit[_maxIndex - 1];
        }
 
        protected string getFullPath(string strPath)
        {
            string stringParse = strPath.Replace("Bilgisayarim\\", "");
            return stringParse;
        }
 
        private void btnSecilenDiziniTara_Click(object sender, EventArgs e)
        {
            if (tvDizinler.SelectedNode == null)
            {
                MessageBox.Show("Lutfen bir dizin seciniz!", "Surucu veya Dizin", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (cmbDosyaUzantisi.SelectedItem == null)
            {
                MessageBox.Show("Lutfen bir dosya uzantisi seciniz!", "Dosya Uzantisi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            TreeNode tn = null;
            lngIdx = 0;
            lngDizinSayac = 0;
            pgBar.Value = 0;
            htDosyaYolu = new Hashtable();
            htMukerrerler = new Hashtable();
            tn = tvDizinler.SelectedNode;
            if (tn.Parent == null) //demek ki Bilgisayarim secilmis.
            {
                for (int i = 0; i &amp;amp;lt; htYerelDisk.Count; i  )
                    dizinleriBul(htYerelDisk[i].ToString());
            }
            else
            {
                dizinleriBul(tn.Text);
            }
            mukerrerleriBul();
            gridiDoldur();
        }
 
        private void gridiDoldur()
        {
            //    long lng1 = 0;
            //    htMukerrerler.Add(lng1, "deneme.txt@@|@@d:/deneme/deneme.txt");
            //    lng1 = 1;
            //    htMukerrerler.Add(lng1, "deneme2.txt@@|@@d:/deneme/deneme2.txt");
            //    lng1 = 2;
            //    htMukerrerler.Add(lng1, "deneme3.txt@@|@@d:/deneme/deneme3.txt");            
            gridMukerrerler.DataSource = dtDoldur();
            gridMukerrerler.Columns[strKolonDosyaAdi].Width = 100;
            gridMukerrerler.Columns[strKolonDosyaAdi].Resizable = DataGridViewTriState.False;
            gridMukerrerler.Columns[strKolonDosyaAdi].ReadOnly = true;
            gridMukerrerler.Columns[strKolonDosyaYolu].Width = 275;
            gridMukerrerler.Columns[strKolonDosyaYolu].Resizable = DataGridViewTriState.False;
            gridMukerrerler.Columns[strKolonDosyaYolu].ReadOnly = true;
            gridMukerrerler.Columns[strKolonDosyaBoyut].Width = 65;
            gridMukerrerler.Columns[strKolonDosyaBoyut].Resizable = DataGridViewTriState.False;
            gridMukerrerler.Columns[strKolonDosyaBoyut].ReadOnly = true;
            gridMukerrerler.DefaultCellStyle.Font = new Font("Tahoma", 8);
            gridMukerrerler.DefaultCellStyle.ForeColor = Color.Blue;
            gridMukerrerler.DefaultCellStyle.BackColor = Color.Beige;
        }
 
        private void dizinleriBul(string pSeciliDizin)
        {
            string[] diziDizinler = null;
            try
            {
                lngDizinSayac  ;
                if (lngDizinSayac &amp;amp;gt; intPgMaks)
                    pgBar.Value = intPgMaks - 1;
                else
                    pgBar.Value  = 1;
                lblTarama.Text = lngDizinSayac   " adet dizin tarandi.";
                dosyalariBul(pSeciliDizin);
                try
                {
                    diziDizinler = Directory.GetDirectories(pSeciliDizin);
                }
                catch (UnauthorizedAccessException)
                {
                    //dizineIzinVer(pSeciliDizin);
                    //diziDizinler = Directory.GetDirectories(pSeciliDizin);
                }
                if (diziDizinler.Length &amp;amp;gt; 0)
                {
                    for (int i = 0; i &amp;amp;lt; diziDizinler.Length; i  )
                    {
                        dizinleriBul(diziDizinler[i]);
                        Application.DoEvents();                        
                    }
                }
            }
            catch (Exception e)
            {
                ClsHataKayit.hataKontrolXml("dizinleriBul", e.Message);
            }
        }
 
        private void dosyalariBul(string pSeciliDizin)
        {
            int i = 0;
            try
            {
                string[] filePaths = Directory.GetFiles(pSeciliDizin, cmbDosyaUzantisi.SelectedItem.ToString(), <br>SearchOption.TopDirectoryOnly);
                for (i = 0; i &amp;amp;lt; filePaths.Length; i  )
                {
                    htDosyaYolu.Add(lngIdx, filePaths[i].ToString());
                    lngIdx  ;
                }
            }
            catch (UnauthorizedAccessException)
            {
                // HataKayit.hataKontrolXml("dosyalariBul", e.Message);
            }
        }
 
        private void dosyaUzantilariniYukle()
        {
            //OzelListe lst1 = null;
            //lst1 = new OzelListe("*.mp3", "1");
            //cmbDosyaUzantisi.Items.Add(lst1);
            System.Xml.XmlDocument xmlDokuman = new System.Xml.XmlDocument();
            System.Xml.XmlNodeList lst1 = null;
            xmlDokuman.Load("DosyaUzantilari.xml");
            lst1 = xmlDokuman.SelectNodes("/KOK/Dosya_Uzantisi");
            foreach (System.Xml.XmlNode nod1 in lst1)
            {
                cmbDosyaUzantisi.Items.Add(nod1.InnerText);
            }
        }
 
        private DataTable dtDoldur()
        {
            string[] diziStr = new string[] { "@@|@@" };
            DataTable dt = new DataTable("dtMukerrerler");
 
            //Create columns and add to DataTable;
            DataColumn dcDosyaAdi = new DataColumn(strKolonDosyaAdi);
            dt.Columns.Add(dcDosyaAdi); //ID column created and add to DataTable
 
            DataColumn dcDosyaYolu = new DataColumn(strKolonDosyaYolu);
            dt.Columns.Add(dcDosyaYolu); //LastName column created and add to DataTable
 
            DataColumn dcDosyaBoyut = new DataColumn(strKolonDosyaBoyut);
            dt.Columns.Add(dcDosyaBoyut); //LastName column created and add to DataTable
 
            //Now Add some data to the DataTable
            DataRow dr;
            for (long lng1 = 0; lng1 &amp;amp;lt; htMukerrerler.Count; lng1  )
            {
                dr = dt.NewRow();
                dr[strKolonDosyaAdi] = htMukerrerler[lng1].ToString().Split(diziStr, StringSplitOptions.RemoveEmptyEntries)[0];
                dr[strKolonDosyaYolu] = htMukerrerler[lng1].ToString().Split(diziStr, StringSplitOptions.RemoveEmptyEntries)[1];
                dr[strKolonDosyaBoyut] = htMukerrerler[lng1].ToString().Split(diziStr, StringSplitOptions.RemoveEmptyEntries)[2];
                dt.Rows.Add(dr);
            }
            return dt;
        }
 
        //private void gridMukerrerler_CellContentClick(object sender, DataGridViewCellEventArgs e)
        //{
        //    gridMukerrerler_CellClick(sender, e);
        //}
 
        //private void gridMukerrerler_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        //{
        //    gridMukerrerler_CellClick(sender, e);
        //}
 
        private void gridMukerrerler_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (gridMukerrerler.CurrentCell.ReadOnly)
                {
                    gridMukerrerler.CurrentCell.Selected = false;
                }
                else
                {
                    if ((bool)gridMukerrerler.CurrentCell.EditedFormattedValue)
                        gridMukerrerler.Rows[gridMukerrerler.CurrentCell.RowIndex].DefaultCellStyle.BackColor = Color.Beige;
                    else
                        gridMukerrerler.Rows[gridMukerrerler.CurrentCell.RowIndex].DefaultCellStyle.BackColor = Color.DarkOrange;
                }
            }
            catch (Exception err)
            {
                ClsHataKayit.hataKontrolXml("gridMukerrerler_CellContentClick", err.Message);
            }
        }
 
        private void gridMukerrerler_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            gridMukerrerler_CellClick(sender, e);
        }
 
        private void mukerrerleriBul()
        {
            long lng1 = 0, lng2 = 0;
            long lngMukerrerler = 0;
            string strDosyaAdi1 = "", strDosyaAdi2 = "";
            string strDosyaYolu1 = "", strDosyaYolu2 = "";
            htMukerrerler = new Hashtable();
            System.IO.FileInfo fi = null;
            if (htDosyaYolu.Count &amp;amp;lt;= 0)
            {
                MessageBox.Show("Secilen dosya uzantisina ait dosya bulanamadi!", "Dosya Bulunamadi", MessageBoxButtons.OK, <br>MessageBoxIcon.Information);
                return;
            }
            for (lng1 = 0; lng1 &amp;amp;lt; htDosyaYolu.Count; lng1  )
            {
                strDosyaYolu1 = htDosyaYolu[lng1].ToString();
                strDosyaAdi1 = GetPathName(strDosyaYolu1);
                for (lng2 = 0; lng2 &amp;amp;lt; htDosyaYolu.Count; lng2  )
                {
                    strDosyaYolu2 = htDosyaYolu[lng2].ToString();
                    strDosyaAdi2 = GetPathName(strDosyaYolu2);
                    if (lng1 != lng2)
                    {
                        if (strDosyaAdi1.Equals(strDosyaAdi2))
                        {
                            if (!iseDizideVar(strDosyaAdi1   "@@|@@"   strDosyaYolu1))
                            {
                                //    if (!iseDizideVar(strDosyaAdi2   "@@|@@"   strDosyaYolu2))
                                //    {
                                //        htMukerrerler.Add(lngMukerrerler, strDosyaAdi2   "@@|@@"   strDosyaYolu2);
                                //    }
                                //}
                                //else
                                //{
                                fi = new System.IO.FileInfo(strDosyaYolu1);
                                htMukerrerler.Add(lngMukerrerler, strDosyaAdi1   "@@|@@"   strDosyaYolu1   "@@|@@"   fi.Length.ToString());
                                lngMukerrerler  ;
                            }
                        }
                    }
                }
                lblTarama.Text = lng1   " adet kayit islendi...";
                Application.DoEvents();
            }
            lblTarama.Text = lng1   " adet kayit islendi...";
            pgBar.Value = intPgMaks-1;
        }
 
        private bool iseDizideVar(string pStr)
        {
            bool iseVar = false;
            for (long lng1 = 0; lng1 &amp;amp;lt; htMukerrerler.Count; lng1  )
            {
                if (htMukerrerler[lng1].ToString().Equals(pStr))
                {
                    iseVar = true;
                    break;
                }
            }
            return iseVar;
        }
 
        private void dizineIzinVer(string pDizinYolu)
        {
            //try
            //{
            //    DirectoryInfo info = new DirectoryInfo(pDizinYolu);
            //    WindowsIdentity self = System.Security.Principal.WindowsIdentity.GetCurrent();
            //    DirectorySecurity ds = info.GetAccessControl();
            //    ds.AddAccessRule(new FileSystemAccessRule(self.Name, FileSystemRights.FullControl, InheritanceFlags.ObjectInherit |
            //                        InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
            //    info.SetAccessControl(ds);
            //}
            //catch (Exception e)
            //{
            //    HataKayit.hataKontrolXml("dizineIzinVer", e.Message);
            //}
        }
         
        private void MukerrerleriBulSil_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (MessageBox.Show("Çıkmak istediğinizden emin misiniz?", "MukerrerleriBulSil", MessageBoxButtons.YesNo, <br>MessageBoxIcon.Question) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
 
        private void btnCikis_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void btnSecilenleriSil_Click(object sender, EventArgs e)
        {
            Hashtable htSilinecekler = new Hashtable();
            int i = 0, j=0;
            try
            {
                foreach (DataGridViewRow rw in gridMukerrerler.Rows)
                {
                    if ((bool)rw.Cells[strKolonSec].FormattedValue)
                    {
                        htSilinecekler.Add(i, rw.Cells[strKolonDosyaYolu].FormattedValue.ToString());
                        i  ;
                    }
                }
                for (j = 0; j &amp;amp;lt; htSilinecekler.Count; j  )
                {
                    File.Delete(htSilinecekler[j].ToString());
                    Application.DoEvents();
                }
                MessageBox.Show("Islem tamamlandi.("   j   ")", "Islem Tamam", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception er)
            {
                ClsHataKayit.hataKontrolXml("btnSecilenleriSil_Click", er.Message);
            }
        }
    }
}
 
 
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Zamanında herhangi bir txt içerikli dosyada(.srt, .txt, .xml,...vs) bazı karakterleri başka karakterlere çevirmeye yarayan ufak bir masaüstü pogramı yazmıştım C#'ta. Visual Studio 2008 kullanmıştım. Yazılışındaki amaç altyazı dosyalarındaki Türkçe karakterleri temizlemek.
Farklı işlere de yarayabilir belki.
Kaynak kodları http://www.mediafire.com/?w9xfy80q188e4 adresinden indirebilirsiniz. Ya da http://www.divshare.com/download/12593413-f72 adresinden.
Kullanımı çok kolay. Karakterler.xml adındaki XML dosyası içine değiştirmek istediğiniz karakterleri ekliyorsunuz.
Kodları aşağıdaki şekilde:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace TurkceKarakterleriTemizle
{
    public partial class TurkceKarakterleriTemizle : Form
    {
        private string strDosyaTurleri = "";
        private System.Xml.XmlDocument xmlDokuman = null;
        private string strAltyaziIcerik = "";
        private string strDosyaYolu = "";
        MainMenu menuUst = null;
        public TurkceKarakterleriTemizle()
        {
            InitializeComponent();
            strDosyaTurleri = "Altyazi Dosyalari(.srt)|*.srt|Altyazi Dosyalari(.sub)|*.sub";
            strDosyaTurleri  = "|HTML Dosyalari|*.html|HTM Dosyalari|*.htm";
            strDosyaTurleri ="|JSP Dosyalari|*.jsp|XML Dosyalari|*.xml";
            strDosyaTurleri  = "|Excel Dosyalari|*.xls|ASP Dosyalari|*.asp";
            strDosyaTurleri  = "|TXT Dosyalari|*.txt";
            xmlDokuman = new System.Xml.XmlDocument();
            System.Collections.Hashtable htTurkceKarakterler = new System.Collections.Hashtable();
            xmlDokuman.Load(System.AppDomain.CurrentDomain.BaseDirectory   "/Karakterler.xml");
            lblAltyaziDosyasi.Text = "";
            btnTurkceyeCevir.Enabled = false;
////////////MENU BASLANGIC
            menuUst = new MainMenu();
            // en ust seviye.
            MenuItem m1 = new MenuItem("Dosya");
            menuUst.MenuItems.Add(m1);
            MenuItem m2 = new MenuItem("Islem");
            menuUst.MenuItems.Add(m2);
            // dosya menusunun alt menuleri
            MenuItem subm1 = new MenuItem("Ac");
            m1.MenuItems.Add(subm1);
            MenuItem subm2 = new MenuItem("Cikis");
            m1.MenuItems.Add(subm2);
            // islem menusunun alt menusu
            MenuItem subm3 = new MenuItem("Turkce'ye Cevir");
            m2.MenuItems.Add(subm3);
            // menu elemanlarina islem atama.
            subm1.Click  = new EventHandler(btnDosyaAc_Click);
            subm2.Click  = new EventHandler(btnCikis_Click);
            subm3.Click  = new EventHandler(btnTurkceyeCevir_Click);
            // menuyu form a ekleyelim..
            Menu = menuUst;
////////////MENU BITIS
        }
 
        private void btnCikis_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void TurkceKarakterleriTemizle_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (MessageBox.Show("Çıkmak istediğinizden emin misiniz?", "TurkceKarakterleriTemizle",<br>&nbsp;MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
 
        private void txtYeYaz(string pDosyaAdi, string pIcerik)
        {
            System.IO.StreamWriter nesneSw = null ;
            string[] diziIcerik = null;
            int i=0;
            if (!pIcerik.Equals(""))
            {
                nesneSw = new System.IO.StreamWriter(pDosyaAdi, false, Encoding.GetEncoding(1254)); <br>//'Yanına true dersek üzerine yazmaya devam eder.
                diziIcerik = pIcerik.Split(new string[]{"@@SA@@"},StringSplitOptions.RemoveEmptyEntries);
                for (i = 0; i &amp;amp;amp;amp;lt; diziIcerik.Length; i  )
                {
                    nesneSw.Write(diziIcerik[i]); //'Yukarda değiştirdiğimiz içeriği dosyaya yazıyoruz.
                }
 
                lblTurkceyeCevir.Text  = Environment.NewLine   "Programin calistigi dizinde";
                lblTurkceyeCevir.Text  = Environment.NewLine   "ayni isimde dosya olusturuldu.";
                lblTurkceyeCevir.Text  = Environment.NewLine   "Filmin oldugu dizine kopyalanmalidir.";
                //MessageBox.Show("Dosya oluşturuldu.("   pDosyaAdi   ")", "Dosya Olustu!", MessageBoxButtons.OK);
                nesneSw.Close();
            }
        }
 
        private void btnDosyaAc_Click(object sender, EventArgs e)
        {
 
            OpenFileDialog dosyaAcmaPenceresi = new OpenFileDialog();
            lblTurkceyeCevir.Text = "";
            lblAltyaziDosyasi.Text = "";
            btnTurkceyeCevir.Enabled = false;
            dosyaAcmaPenceresi.Filter = strDosyaTurleri;
            dosyaAcmaPenceresi.InitialDirectory = "C:/";
            dosyaAcmaPenceresi.Title = "Bir dosya seçin";
            dosyaAcmaPenceresi.ShowDialog();
            System.IO.StreamReader nesneSr = null;
            strDosyaYolu = dosyaAcmaPenceresi.FileName;
            string strSatir = "";
            strAltyaziIcerik = "";
            if (System.IO.File.Exists(strDosyaYolu) == true)
            {
                nesneSr = new System.IO.StreamReader(strDosyaYolu, Encoding.Default); //'Dosyamızı nesnemize yükledik.
                while (nesneSr.Peek() != -1) //'Dosyadaki tüm karakterleri almaya yarayan kalıp bu sanırım.
                {
                    strSatir = nesneSr.ReadLine()   Environment.NewLine;
                    strSatir  = "@@SA@@";
                    strAltyaziIcerik  = strSatir;
                }
                nesneSr.Close(); //'Bunu kapatmazsak YazmaNesnesi yazamıyor. Zaten açılan her nesneyi kapatmakta fayda var.
                lblAltyaziDosyasi.ForeColor = Color.Wheat;
                lblAltyaziDosyasi.Text = "Dosya yuklendi.";
                btnTurkceyeCevir.Enabled = true;
            }
            else
            {
                MessageBox.Show("Dosya bulunamadı!", "Dosya Yok!", MessageBoxButtons.OK); //'Dosya yoksa uyarı versin.
            }
 
        }
 
        private void btnTurkceyeCevir_Click(object sender, EventArgs e)
        {
            System.Xml.XmlNodeList lst1 = xmlDokuman.SelectNodes("/KOK/KARAKTER");
            System.Xml.XmlNode nod1 = null;
            int i = 0;
            string[] diziDosyaAdi = null;
            string strDosyaAdi = "";
            for (i = 0; i &amp;amp;amp;amp;lt; lst1.Count; i  )
            {
                nod1 = lst1[i];
                strAltyaziIcerik = strAltyaziIcerik.Replace(nod1.SelectSingleNode("ESKI").InnerText,<br>&nbsp;nod1.SelectSingleNode("YENI").InnerText);
            }
            diziDosyaAdi = strDosyaYolu.Split('\\');
            for (i = 0; i &amp;amp;amp;amp;lt; diziDosyaAdi.Length; i  )
            {
                strDosyaAdi = diziDosyaAdi[i]; // son eleman dosya adidir.
            }
            lblTurkceyeCevir.ForeColor = Color.Wheat;
            lblTurkceyeCevir.Text = "Turkce karakterler temizlendi.";
            txtYeYaz(strDosyaAdi, strAltyaziIcerik);
        }
    }
}
 
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
C#'ta uygulama geliştirirken her uygulama için kullandığım bir Veritabanı işlemleri sınıfı var.
Belki başkalarının da işine yarar diyerek paylaşıyorum.
Hem Stored Procedure, hem de normal sql sorgusunu çalıştıracak metotlar içeriyor.
 
VeritabaniIslemleri.CS
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
 
namespace WebPortal.Veritabani
{
    public class VeritabaniIslemleri : IDisposable
    {
        #region Private Members
        private SqlConnection _baglanti;
        private SqlCommand _sqlCommand;
        private SqlDataReader _sqlDataReader;
        private SqlDataAdapter _sqlDataAdapter;
        private DataSet _dataSet { get; set; }
        private SqlTransaction _sqlTransaction;
        private int _beklemeSuresiSaniye;
        #endregion Private Members
 
        #region Public Members
        /// <summary>
        /// 
        /// </summary>
        public SqlTransaction SqlTransaction
        {
            get { return _sqlTransaction; }
            set { _sqlTransaction = value; }
        }
 
        /// <summary>
        /// 
        /// </summary>
        public SqlCommand SqlCommand
        {
            get { return _sqlCommand; }
            set { _sqlCommand = value; }
        }
 
        /// <summary>
        /// 
        /// </summary>
        public SqlConnection Baglanti
        {
            get { return _baglanti; }
            set { _baglanti = value; }
        }
 
        /// <summary>
        /// 
        /// </summary>
        public int BeklemeSuresiSaniye
        {
            get { return _beklemeSuresiSaniye; }
            set { _beklemeSuresiSaniye = value; }
        }
        #endregion Public Members
 
        #region Constructor
        /// <summary>
        /// 
        /// </summary>
        public VeritabaniIslemleri(VeritabaniSecimleri vtSecim)
        {
            this._baglanti = new SqlConnection(getirBaglantiCumlesi(vtSecim));
            baglantiKontrol();
        }
 
        /// <summary>
        /// 
        /// </summary>
        public VeritabaniIslemleri(IsolationLevel isolationLevel, VeritabaniSecimleri vtSecim)
        {
            this._baglanti = new SqlConnection(getirBaglantiCumlesi(vtSecim));
            baglantiKontrol();
            this.SqlTransaction = this._baglanti.BeginTransaction(isolationLevel);
        }
        #endregion Constructor
 
        #region Private Methods
        private string getirBaglantiCumlesi(VeritabaniSecimleri vtSecim)
        {
            switch (vtSecim)
            {
                case VeritabaniSecimleri.Veritabani_1:
                    return ConfigurationManager.ConnectionStrings["Veritabani_1"].ConnectionString;
                case VeritabaniSecimleri.Veritabani_2:
                    return ConfigurationManager.ConnectionStrings["Veritabani_2"].ConnectionString;;
                default:
                    return ConfigurationManager.ConnectionStrings["Veritabani_1"].ConnectionString;
            }
        }
 
        private SqlConnection baglantiKontrol()
        {
            if (this._baglanti.State == ConnectionState.Closed || this._baglanti.State == ConnectionState.Broken)
            {
                this._baglanti.Open();
            }
            return this._baglanti;
        }
 
        private void sorguyuLogla(string strSql, int kullaniciId)
        {
            kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            this._baglanti = new SqlConnection(getirBaglantiCumlesi(VeritabaniSecimleri.WebPortal));
            string sql = " INSERT INTO [dbo].[WEB_HATALISORGULOG](SorguTarihi, IslemKullaniciId, SorguCumlesi) ";
            sql += " VALUES(GETDATE()," + kullaniciId + ",'" + strSql.Replace("'", "''") + "') ";
            this.ExecuteInsertUpdateDelete(sql);
        }
 
        private bool disposed = false; // to detect redundant calls
 
        protected virtual void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    if (this._baglanti != null)
                    { this._baglanti.Dispose(); }
                    if (this.SqlCommand != null)
                    { this.SqlCommand.Dispose(); }
                    if (this._dataSet != null)
                    { this._dataSet.Dispose(); }
                    if (this._sqlDataReader != null)
                    { this._sqlDataReader.Dispose(); }
                    if (this._sqlDataAdapter != null)
                    { this._sqlDataAdapter.Dispose(); }
                    if (this.SqlTransaction != null)
                    { this.SqlTransaction.Dispose(); }
                }
                disposed = true;
            }
        }
        #endregion Private Methods
 
        #region Public Methods
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public SqlConnection kapatBaglanti(SqlTransaction trn, SqlCommand cmd)
        {
            if (this._baglanti.State == ConnectionState.Open)
            {
                this._baglanti.Close();
            }
            if (trn != null)
            {
                trn.Dispose();
            }
            if (cmd != null)
            {
                cmd.Dispose();
                cmd = null;
            }
            return this._baglanti;
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametre"></param>
        /// <returns></returns>
        public DataTable ReturnDataTable(string spIsim, SqlParameter spParametre)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim
                };
                if (this.SqlTransaction != null)
                {
                    this.SqlCommand.Transaction = this.SqlTransaction;
                }
                if (spParametre != null)
                    this.SqlCommand.Parameters.Add(spParametre);
 
                this._sqlDataAdapter = new SqlDataAdapter(this.SqlCommand);
                DataTable dt = new DataTable();
                this._sqlDataAdapter.Fill(dt);
                return dt;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametreleri"></param>
        /// <returns></returns>
        public DataTable ReturnDataTable(string spIsim, List<SqlParameter> spParametreleri)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim
                };
                foreach (SqlParameter param in spParametreleri)
                {
                    this.SqlCommand.Parameters.Add(param);
                }
                this._sqlDataAdapter = new SqlDataAdapter(this.SqlCommand);
                DataTable dt = new DataTable();
                this._sqlDataAdapter.Fill(dt);
                return dt;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametreleri"></param>
        /// <returns></returns>
        public DataSet ReturnDataSet(string spIsim, SqlParameter spParametre)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim
                };
                if (spParametre != null)
                    this.SqlCommand.Parameters.Add(spParametre);
 
                this._sqlDataAdapter = new SqlDataAdapter(this.SqlCommand);
 
                this._dataSet = new DataSet();
                this._dataSet.Reset();
                this._sqlDataAdapter.Fill(this._dataSet);
                return this._dataSet;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametreleri"></param>
        /// <returns></returns>
        public DataSet ReturnDataSet(string spIsim, List<SqlParameter> spParametreleri)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim
                };
                foreach (SqlParameter param in spParametreleri)
                {
                    this.SqlCommand.Parameters.Add(param);
                }
                this._sqlDataAdapter = new SqlDataAdapter(this.SqlCommand);
 
                this._dataSet = new DataSet();
                this._dataSet.Reset();
                this._sqlDataAdapter.Fill(this._dataSet);
                return this._dataSet;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// Baglantiyi cagiran metot kapatacak...
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametre"></param>
        /// <returns></returns>
        public int ExecuteInsertUpdateDelete(string spIsim, SqlParameter spParametre)
        {
            int etkilenenKayitSayisi = 0;
            try
            {
                baglantiKontrol();
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim,
                    Transaction = this.SqlTransaction
                };
                this.SqlCommand.Parameters.Add(spParametre);
                etkilenenKayitSayisi = this.SqlCommand.ExecuteNonQuery();
                if (etkilenenKayitSayisi == 0)
                {
                    string strParametreler = spParametre.ParameterName + "|" + spParametre.Value;
                    throw new Exception("Ekleme/Guncelleme/Silme islemi tamamlanamadi.(" + strParametreler + ")");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //this.SqlCommand.Dispose();
                //this.SqlCommand = null;
                //kapatBaglanti();
            }
            return etkilenenKayitSayisi;
        }
 
        /// <summary>
        /// Baglantiyi cagiran metot kapatacak...
        /// </summary>
        /// <param name="spIsim"></param>
        /// <param name="spParametreleri"></param>
        /// <returns></returns>
        public int ExecuteInsertUpdateDelete(string spIsim, List<SqlParameter> spParametreleri)
        {
            int etkilenenKayitSayisi = 0;
            try
            {
                baglantiKontrol();
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = spIsim,
                    Transaction = this.SqlTransaction
                };
                foreach (SqlParameter param in spParametreleri)
                {
                    this.SqlCommand.Parameters.Add(param);
                }
                etkilenenKayitSayisi = this.SqlCommand.ExecuteNonQuery();
                if (etkilenenKayitSayisi == 0)
                {
                    string strParametreler = String.Join("#", spParametreleri.Select(o => (o.ParameterName + "|" + o.Value)));
                    throw new Exception("Ekleme/Guncelleme/Silme islemi tamamlanamadi.(" + strParametreler + ")");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //this.SqlCommand.Dispose();
                //this.SqlCommand = null;
                //kapatBaglanti();
            }
            return etkilenenKayitSayisi;
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="strSql"></param>
        /// <returns></returns>
        public DataSet ReturnDataSet(string strSql)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this._sqlDataAdapter = new SqlDataAdapter(strSql, this._baglanti);
                this._dataSet = new DataSet();
                this._dataSet.Reset();
                this._sqlDataAdapter.Fill(this._dataSet);
                return this._dataSet;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="strSql"></param>
        /// <returns></returns>
        public DataTable ReturnDataTable(string strSql, int kullaniciId)
        {
            this.SqlCommand = new SqlCommand();
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand.Connection = this._baglanti; // acBaglanti();
                this.SqlCommand.CommandText = strSql;
                if (this.BeklemeSuresiSaniye > 0)
                {
                    this.SqlCommand.CommandTimeout = this.BeklemeSuresiSaniye;
                }
                this._sqlDataAdapter = new SqlDataAdapter(this.SqlCommand);
                DataTable dt = new DataTable();
                this._sqlDataAdapter.Fill(dt);
                return dt;
            }
            catch (Exception Ex)
            {
                sorguyuLogla(strSql, kullaniciId);
                throw Ex;
            }
            finally
            {
                kapatBaglanti(this.SqlTransaction, this.SqlCommand);
            }
        }
 
        /// <summary>
        /// Baglantiyi cagiran metot kapatacak...
        /// </summary>
        /// <param name="strSql"></param>
        public int ExecuteInsertUpdateDelete(string strSql)
        {
            int etkilenenKayitSayisi = 0;
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.Text,
                    CommandText = strSql
                };
                etkilenenKayitSayisi = this.SqlCommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //this.SqlCommand.Dispose();
                //this.SqlCommand = null;
                //kapatBaglanti();
            }
            return etkilenenKayitSayisi;
        }
 
        /// <summary>
        /// Baglantiyi cagiran metot kapatacak...
        /// </summary>
        /// <param name="strSql"></param>
        /// <returns></returns>
        public SqlDataReader ReturnDataReader(string strSql)
        {
            try
            {
                baglantiKontrol(); // Aciksa zaten tekrar acmiyor...
                this.SqlCommand = new SqlCommand()
                {
                    Connection = this._baglanti,
                    CommandType = CommandType.Text,
                    CommandText = strSql
                };
                this._sqlDataReader = this.SqlCommand.ExecuteReader();
                return this._sqlDataReader;
 
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //this.SqlCommand.Dispose();
                //this.SqlCommand = null;
                //kapatBaglanti();
            }
        }
 
        /// <summary>
        /// 
        /// </summary>
        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
 
        #endregion Public Methods
    }
     
        /// <summary>
    /// 
    /// </summary>
    [Serializable]
    public enum VeritabaniSecimleri : byte
    {
        /// <summary>
        /// Hiçbiri
        /// </summary>
        Hicbiri = 0,
 
        /// <summary>
        /// Birinci veritabani.
        /// </summary>
        Veritabani_1 = 1,
 
        /// <summary>
        /// Ikinci veritabani.
        /// </summary>
        Veritabani_2 = 2,
    }
}
 
Select sorgularını aşağıdaki şekilde kullanabiliriz:
DataTable dtParametre = null;
using (VeritabaniIslemleri vtIslem = new VeritabaniIslemleri(VeritabaniSecimleri.Veritabani_1))
{
SqlParameter parametre = new SqlParameter() { ParameterName = "@ParametreAdi", Value = parametreAdi, Direction = ParameterDirection.Input, DbType = DbType.String };
dtParametre = vtIslem.ReturnDataTable("GETIRPARAMETRE", parametre);
}
 
ya da 
DataTable dt1;
using (VeritabaniIslemleri vtIslem = new VeritabaniIslemleri(VeritabaniSecimleri.Veritabani_2))
vtIslem.BeklemeSuresiSaniye = 120;
dt1= vtIslem.ReturnDataTable(strSql, kullanici.Id);
}
 
Güncelleme/Silme/Ekleme sorgularını da aşağıdaki şekilde kullanabiliriz:
VeritabaniIslemleri vtIslem = new VeritabaniIslemleri(IsolationLevel.ReadUncommitted, VeritabaniSecimleri.Veritabani_2); ;
try
{
// Herhangi bir guncelleme isleminde hata olusursa Exception bloguna gidecegi icin, ya tum islemler gerceklesecek,
// ya da hic biri gerceklesmeyecek.
List<SqlParameter> lstParametreler = new List<SqlParameter>();
lstParametreler.Add(new SqlParameter() { ParameterName = "@Id", Value = Id, Direction = ParameterDirection.Input, DbType = DbType.Int32 });
lstParametreler.Add(new SqlParameter() { ParameterName = "@Id", Value = Id, Direction = ParameterDirection.Input, DbType = DbType.Int32 });
int etkilenenKayitSayisi = vtIslem.ExecuteInsertUpdateDelete("MUSTERIGUNCELLE", lstParametreler);
lstParametreler = new List<SqlParameter>();
lstParametreler.Add(new SqlParameter() { ParameterName = "@Id", Value = Id, Direction = ParameterDirection.Input, DbType = DbType.Int32 });
etkilenenKayitSayisi = vtIslem.ExecuteInsertUpdateDelete("ADRESGUNCELLE", lstParametreler);
vtIslem.SqlTransaction.Commit();
}
catch (Exception ex)
{
vtIslem.SqlTransaction.Rollback();
throw new Exception("İşlem tamamlanamadı!(" + ex.Message + ")");
}
finally
{
vtIslem.kapatBaglanti(vtIslem.SqlTransaction, vtIslem.SqlCommand);
}
 
Saygılar...
# Kategoriler : C# Sql Server Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
ASP.Net MVC kullanarak excel çıktısı almak için aşağıdaki metot kullanılabilir:
public FileContentResult MusteriListesiRaporuExcel(int ayIndex, int yil)
{
    MusteriIslemleri musteriIslemleri = new MusteriIslemleri();
    List<Musteri> lst = musteriIslemleri.GetirMusteriListesi(ayIndex, yil);
    StringBuilder sb = musteriIslemleri.List2ExcelSb(lst);
    string sFileName = "MusteriListesiRaporu_" + GenelIslemler.strTarihiGetir() + ".xls"; // strTarihiGetir metodu 20150925223500 şeklinde bitişik tarih saat bilgisi dönüyor. Dosya ismi tekil olsun diye...
    HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + sFileName);
    this.Response.ContentType = "application/vnd.ms-excel";
    this.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    byte[] buffer = System.Text.Encoding.GetEncoding(1254).GetBytes(sb.ToString()); // Karakter problemine göre burasu UTF8 ile denenebilir...
    return new FileContentResult(buffer, this.Response.ContentType);
}
 
Buradaki en can alıcı nokta List2ExcelSb metodu. Bu metot, kendisine gelen her türlü listeyi excel çıktısına çevirebiliyor.
1-2 sefer böyle ihtiyacım oldu ve iki rapor için de bunu ayrı ayrı metotlarda yazdım.
Sonra düşündüm ve dedim ki; öyle bir metot olsun ki, kendisine gelen listeyi hiç ayırmadan direkt excele uygun bir HTML stringe çevirsin.
İşte o metot, bu metot:
public StringBuilder List2ExcelSb<T>(List<T> liste)
{
    IList<PropertyInfo> properties = typeof(T).GetProperties().ToList();
    StringBuilder sb = new StringBuilder();
    sb.Append("<table style='1px solid black; font-family: Tahoma, Geneva, sans-serif; font-size:14px;'>");
    sb.Append("<tr>");
    foreach (var property in properties)
    {
        sb.Append("<td style='width:130px;'><b>");
        sb.Append(property.Name.ToString());
        sb.Append("</b></td>");
    }
    sb.Append("</tr>");
    foreach (var item in liste)
    {
        sb.Append("<tr style='height:20px;'>");
        foreach (var property in properties)
        {
            object propValue = property.GetValue(item, null);
            sb.Append("<td>");
            sb.Append(propValue.ToString());
            sb.Append("</td>");
        }
        sb.Append("</tr>");
    }
    sb.Append("</table>");
    return sb;
}

 
Kendisine gönderilen listenin özelliklerini(property) dolaşıyor tek tek ve bunları sütunlara kalın harflerle yerleştiriyor.
Sonra da bu özelliklerin değerlerini satır satır ekliyor tabloya.
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz