Kayıtlar

Base64 - Image Dönüşümleri

//Image'ı Base64 formatına çevirmek için System.Drawing.Image img = System.Drawing.Image.FromFile(@"c:\pict1.jpg"); System.IO.MemoryStream ms = new System.IO.MemoryStream(); img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); string b64 = Convert.ToBase64String(ms.ToArray()); img.Dispose(); ms.Close(); // Base64'den Image'ı elde etmek için byte[] b; b = Convert.FromBase64String(b64); ms = new System.IO.MemoryStream(b); img = System.Drawing.Image.FromStream(ms); img.Save(@"c:\pict1_from_b64.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); img.Dispose(); ms.Close(); ref : http://forums.asp.net/t/896621.aspx

XML'e serialize edilebilen Generic Dictionary

IDictionary interface'ini kullanan Dictionary,Hashtable gibi class'lardan oluşturduğunuz instance'ları xml'e serialize ettiğinizde malesef sorunlar çıkıyo. Bunun için güzel bir çözüm yazılmış. using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; [XmlRoot("dictionary")] public class SerializableDictionary : Dictionary , IXmlSerializable { #region IXmlSerializable Members public System.Xml.Schema.XmlSchema GetSchema() { return null; } public void ReadXml(System.Xml.XmlReader reader) { XmlSerializer keySerializer = new XmlSerializer(typeof(TKey)); XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue)); bool wasEmpty = reader.IsEmptyElement; reader.Read(); if (wasEmpty) return; while (reader.NodeType != System.Xml.XmlNodeType.EndElement) { reader.ReadStartElement("item"); reader.ReadStartElement("key"); TKey key = (TKey)keySerializer.Deserialize(reader); reader.ReadEndElement(); reader.R...

The Controls property of UpdatePanel with ID '...' cannot be modified directly....

Eğer projenizde update panel'i runtime'da eklemiş vede bu panel'e runtime'da kontrol eklemeye çalıştığınızda The Controls property of UpdatePanel with ID '...' cannot be modified directly. To change the contents of the UpdatePanel modify the child controls of the ContentTemplateContainer property. hatası alıyorsanız bunun anlamı update panel'in controls classına direk bir control eklemeye çalışmanızdır. Dim upd As UpdatePanel = New UpdatePanel Dim txt As TextBox = New TextBox upd.Controls.Add(txt) gibi ... Bu hatadan kurtulmanız için yapmanız gereken şeyse Dim upd As UpdatePanel = New UpdatePanel Dim txt As TextBox = New TextBox upd.ContentTemplateContainer.Controls.Add(txt) şeklinde update panel'in ContentTemplateContainer'ının control class'ına ekleme yapmak. Ref : http://foros.dotnetclubs.com/forums/thread/1401.aspx

A potentially dangerous Request.Form value was detected from the client

"A potentially dangerous Request.Form value was detected from the client" hatası .NET Framework 1.1 ile gelen ve .NET Framework 2.0 da da bulunan "Request Validation" özelliğinden kaynaklanmaktadır. Kullanımındaki amaç script kodları yada html kodları aracılığıyla yapılabilecek script injection'larına engel olmaktır. Mesela bir textbox'ın içersinde " " işaretleri yerleştirecek olursanız form submit edildiği an hata ile karılaşırsınız. Ancak bazı durumlarda kullanıcının bunu yapmasına müsade etmemiz gerekebilir. Bu sorunu çözmenin 2 yolu var 1) web.config de Request Validation'ı disable etmek (tüm uygulama için geçerli olacaktır) <pages validateRequest="false" /> 2) Bu sorunu çözmek istediğiniz sayfa için @Page yönergesine validateRequest=false yazmak. Ref http://kb.seekdotnet.com/ViewArticle/42data.aspx

Herhangi bir tablonun kolonlarının bilgileri

Select Name,IsPrimaryKey=Case when Name= col_name(sysindexkeys.id,sysindexkeys.colid) then 1 else 0 end, Data_type as DataType,CHARACTER_MAXIMUM_LENGTH as Length,colstat as IsIdentity, IsNullable,object_Name(rkeyid) RelationTable,col_name(rkeyid,rkey) RelationColumn from syscolumns inner join INFORMATION_SCHEMA.COLUMNS on INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME=Name left join sysforeignkeys on syscolumns.id =sysforeignkeys.fkeyid and Name = col_name(fkeyid,fkey) left join sysindexkeys on syscolumns.id = sysindexkeys.id where syscolumns.id=Object_ID('Tablo_Adi')

Sys.Debug is null or not an object

Eğer projenizde ajaxtoolkit in yeni versiyonunu kullandıktan sonra kendi makinenizde yada bir başka makineye publish ettiğinizde Sys.Debug is null or not an object hatası alıyorsanız yapmanız gereken ajax'ın yeni sürümünü kurmak. Ve sonrasında aspnet_regiis -i sorunu halledecektir. Ancak kurulumdan önce eski versiyonu kaldırdığınızda her ihtimale karşılık Program files altındaki ASP.NET 2.0 AJAX Extensions klasörünü silmeyi ihmal etmeyin . Aslına bakarsanız sorun bu klasörün uninstall'dan sonra içersidneki dosyaların bazılarının halen yerinde kalmasından kaynaklanıyor.

Ajax Calendar'da 'Date.parseLocale is not a function' hatası

Eğer ajaxtoolkit'teki yeni kontrollerden birisi olan Calendar nesnesini kullanmış vede 'Date.parseLocale is not a function' hatası alıyorsanız yapmanız gereken ajax'ın sessiz sedasız çıkmış olan yeni sürümünü kurmak. ASP.NET AJAX 1.0 Ve vazgeçilmez aspnet_regiis -i sorunu halledecektir. Ref : http://forums.asp.net/thread/1553150.aspx