Nis 26 2010

Bilmek Yetmiyormuş :(

Category: KişiselAdmin @ 18:11

Ne kadar bilirsen bil,bazen yazılım bilgisi hiçbir işe yaramıyor.diğer konularıda bilecen .ticaret,müşteri ilişkisi,bir işin ne kadar süreceğini tahmin etme,zaman verebilme ve o tarihte işi teslim etme,herşeyi başta konuşup ayarlama,işe değer biçme,ne olsa yaparım değil,kendi bilgi sınırlarının bilincinde olma ve ona göre karşı tarafı bilgilendirme...

Ayrıca hiçbir zaman kendini tekrar etmeme,ediyorsan oradan uzaklaşma,çoğu zaman duygularla değil mantığınla hareket etme,1 TL nin hesabını yapana kuruş hesabı yapma...

Bunları birleştiremediğin zaman sap gibi ortada kalırsın Laughing

Tags:

Oca 28 2010

GridView to excel,word Türkçe Karakter destekli :=)

Category: Asp.netAdmin @ 23:05

 

 
Gridview i office 2003 ve 2007 destekli türkçe karakter problemine takılmadan aktaran GridviewToX im Smile


GridviewToX("Siparisler.xls", GridView1,false); şeklinde kullanılır.AllowPaging sayfalama yapıp yapmayacağını belirtir.

uzantıya göre Mime sini de bulur. dosya uzantısı (.xls)veya (.doc) uzantılı olmalıdır.(.xlsx,.docx  uzantısı verirseniz office 2003,2007 açamaz)
encodingi Encoding.UTF7 yaparsak türkçe karakter problemi office 2003 için kalkıyor.Fakat bu seferde office 2007 dosyayı açamıyor :=( neyseki sorunu çözdük :=)

 


nette yer alan birçok gridview to excel kodunun neden türkçe karakter problemi çıkarttığınıda keşfettim.Sebebi windowsun dosyaların varsayılan olarak UTF8 without BOM(bom olmadan) olarak kaydetmesiymiş.Keçileri kaçıranlara duyurulur Tongue out Sorunlu dosyayı Notepad++ gibi editörlerle açıp UTF8 olarak kaydedersek problem çözülüyor Laughing yada dosyayı aşağıdaki fonksiyondan geçirmeniz gerekiyor.

 

 

    public static void FormatDuzelt(string filePath)

    {

        StreamReader fileStream = new StreamReader(filePath);

        string fileContent = fileStream.ReadToEnd();

        fileStream.Close();

 

        StreamWriter UTF8Writer = new StreamWriter(filePath.Replace(".doc", "-utf8.doc"), false, new UTF8Encoding(true));

        UTF8Writer.Write(fileContent);

        UTF8Writer.Close();

    }


ile dosya formatını UTF8Encoding(true) ile UTF8 without BOM yerine   UTF8 e dönüştürüyoruz.


   public static void GridviewToX(string filename, GridView gv, bool AllowPaging)

    {

        HttpContext.Current.Response.Clear();

        HttpContext.Current.Response.Buffer = true;

        HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + filename);

 

        switch (System.IO.Path.GetExtension(filename).ToLower())

        {

            case ".doc":

                HttpContext.Current.Response.ContentType = GetFileMIME(".doc");

                break;

            case ".xls":

                HttpContext.Current.Response.ContentType = GetFileMIME(".xls");

                break;

            default:

                break;

        }

 

        //  HttpContext.Current.Response.ContentType = "text/plain; charset=utf-8";

        HttpContext.Current.Response.Charset = "windows-1254";

        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;

 

        StringWriter sw = new StringWriter();

        HtmlTextWriter hw = new HtmlTextWriter(sw);

        gv.AllowPaging = AllowPaging;

        gv.GridLines = GridLines.Both;

        gv.DataBind();

 

        //Change the Header Row back to white color

        gv.HeaderRow.Style.Add("background-color", "#FFFFFF");

        //Apply style to Individual Cells

        for (int i = 0; i < gv.HeaderRow.Controls.Count; i++)

        {

            gv.HeaderRow.Cells[i].Style.Add("background-color", "green");

        }

        for (int i = 0; i < gv.Rows.Count; i++)

        {

            GridViewRow row = gv.Rows[i];

            //Change Color back to white

            row.BackColor = System.Drawing.Color.White;

            //Apply text style to each Row

            row.Attributes.Add("class", "textmode");

            //Apply style to Individual Cells of Alternating Row

            if (i % 2 != 0)

            {

                for (int ix = 0; ix < row.Controls.Count; ix++)

                {

                    row.Cells[ix].Style.Add("background-color", "#C2D69B");

                }

            }

 

        }

 

        gv.RenderControl(hw);

 

        string style = @"<style> .textmode { mso-number-format:\@; } </style>";

        HttpContext.Current.Response.Write(style);

        HttpContext.Current.Response.Output.Write(sw.ToString());

        HttpContext.Current.Response.Flush();

        HttpContext.Current.Response.End();

    }

 

    public static string GetFileMIME(string fileextension) // uzantinın mimesini dönderir.uzanti .jpg vs şeklinde sorulmalıdır. using Microsoft.Win32;

    {

        //set the default content-type

        const string DEFAULT_CONTENT_TYPE = "application/unknown";

        RegistryKey regkey, fileextkey;

        string filecontenttype;

        //the file extension to lookup

        try

        {

            //look in HKCR

            regkey = Registry.ClassesRoot;

            //look for extension

            fileextkey = regkey.OpenSubKey(fileextension);

            //retrieve Content Type value

            filecontenttype = fileextkey.GetValue("Content Type", DEFAULT_CONTENT_TYPE).ToString();

            //cleanup

            fileextkey = null;

            regkey = null;

        }

        catch

        {

            filecontenttype = DEFAULT_CONTENT_TYPE;

        }

 

        return filecontenttype;

    }

Tags: , ,

Oca 28 2010

SqlHelper ve faydaları :=)

Category: c#Admin @ 22:21

  
ilk zamanlar kendi db classımı yazmak için kasardım.Daha sonra microsoftun bizim için bunu yaptığını öğrendim  kasmaya gerek kalmadı +stored procedure destekli Smile
Parametresiz sorguda db ile ilgilenen kod 1 satıra düşüyor.conn.Open(),conn.Close() yok artık :=)

SqlHelperden önce

        //rasgele 3 ürün alınıyor

        SqlConnection conn = new SqlConnection(connStr);

        conn.Open();

        string sqlStr = "SELECT TOP 3  * FROM Urunler WHERE (KategoriID = @kategoriid) AND (Durum = 'True') ORDER BY newID()";

        SqlCommand cmd = new SqlCommand(sqlStr, conn);

        cmd.Parameters.Add("@kategoriid", SqlDbType.Int).Value = kategoriid;

        SqlDataReader dt = cmd.ExecuteReader();

        datallist1.DataSource = dt;

        datallist1.DataBind();

        dt.Close();

        cmd.Dispose();

        conn.Close();

 

SqlHelperden sonra

        //rasgele 3 ürün alınıyor       
        SqlParameter
[] parametreler = new SqlParameter[] { new SqlParameter("@kategoriid", kategoriid) };

        datallist1.DataSource = SqlHelper.ExecuteReader(connStr, CommandType.Text, "SELECT TOP 3  * FROM Urunler WHERE (KategoriID = @kategoriid) AND (Durum = 'True') ORDER BY newID()", parametreler);

        datallist1.DataBind();

SqlHelper Metotları

ExecuteNonQuery Satır Döndürmeyen bir komutu çalıştırır
ExecuteDataset Dataset olarak satırlar döndürür
ExecuteReader SqlDataReader olarak satırlar döndürür
ExecuteScalar Bir nesne olarak tek bir değer döndürür
ExecuteXmlReader XmlReader içinde bir Xml döndürür
FillDataset Gönderilen parametrelere göre Dataset'i doldurur
UpdateDataset Verilen update,insert,delete komutlarına göre DataSet in satırında değişiklik yapar
CreateCommand Verilen Stored Procedure ve Parametrelere göre Command nesnesi yaratır
ExecuteNonQueryTypedParams
Herhangi bir satır döndürmeyen bir komutu çalıştırır
ExecuteDatasetTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp DataSet döndüren bir komut işletir.
ExecuteReaderTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp SqlDataReader döndüren bir komut işletir.
ExecuteScalarTypedParams
DataRow'un sütun değerlerini parametre olarak kullanıp nesnenin değerini döndüren bir komut işletir.
ExecuteXmlReaderTypedParams
XMLReader içersinde DataRow'un sütun değerlerini parametre olarak kullanan bir XML döndüren bir komut işletir



SqlHelper.cs için tıklayın

Tags:

Oca 27 2010

Programcının ilk yazısı :=)

Category: KişiselAdmin @ 22:41

<b>Hello World</b>

echo "Hello World :=)";

alert('Merhaba Dünya!');

Response.Write("Merhaba Dünya!");

Tags: ,

Oca 27 2010

CopySourceAsHtml ile kod renklendirme

Category: Visual StudioAdmin @ 22:41



Kodları nasıl renklendiririm diye düşünürken CopySourceAsHtml adlı Visual Studio 2008 eklentisini buldum Laughing

Güncel sürümünü  http://copysourceashtml.codeplex.com/ adresinden indirebilirsiniz.Visual Studio 2008 de iken kodu seçip sağ tıklayın Copy As Html deyin sonuç aşağıda ;)



   public static void DosyaKaydettir(string yol, string dosya) // localdeki dosyayı kaydettirir :=(

    {

        HttpContext.Current.Response.ContentType = "application/download";

        HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + dosya);

 

        FileStream sourceFile = new FileStream(@yol, FileMode.Open);

        long FileSize;

        FileSize = sourceFile.Length;

        byte[] getContent = new byte[(int)FileSize];

        sourceFile.Read(getContent, 0, (int)sourceFile.Length);

        sourceFile.Close();

 

        HttpContext.Current.Response.BinaryWrite(getContent);

    }

Tags: ,