28 Aralık 2010 Salı

Index and length must refer to a location within the string. Parameter name: length

Eğer Visual Studio ve MySQL kullanıyorsanız ve tableadapter da InsertQuery ile Kayıt girişi esnasında Index and length must refer to a location within the string.
Parameter name: length

hatası alıyorsanız şunu yapın: Tüm Parametredeki değerleri STRING olarak girin;

Örneğin; _t.InsertQuery("Ali","Veli",32) şeklinde bir kodunuz var ve bu kod çalışırken hata alıyorsanız, burdaki 32 sayısını STRING olarak girin;

_t.InsertQuery("Ali","Veli","32") şeklinde çalışacağını göreceksiniz.!

21 Ekim 2010 Perşembe

Visual Studio 2010 Internet Explorer Sorunu

VS2010 da aspx de yaptığınız siteyi derleyip çalıştırınca IE nin otomatik olarak kendi kendine kapanıdığını fark ettiniz mi?

18 Ekim 2010 Pazartesi

Visual Studio ve MySQL

Hiç anlaşamadıklarını düşünüyorum. Özellikler DBType lar sorunlu. Örneğin bir Dataset oluşturduğunuzda MySQL de girilen datetime tipinde bir alan Dataset içinde DateTime olarak algılanıyor. Eğer bu alanda 0000-00-00 00:00:00 şeklinde bir kayıt olursa DataType hatası alırsınız. bunun için en kolay yöntem web.config dosyasındaki connection da
Allow Zero Datetime=true tanımını eklemeniz.

Ayrıca Datasetinizdeki Fill i Configure edip Query Builder 'ı açıp tekrar OK ile kayıt edin. SQL en iyi DataType verecektir. MySql.DataType ile başlayanları System.DataType ile değiştirin. Yoksa ASPX de hata alırsınız.

Visual Studio 2010

Visual Studio 2010 ile gelen en güzel GÜNCELLEME maalesef Visual Studio 2008 de EKSİK olan ReportViewer daki GetTotalPage() fonksiyonu. VS2008 de bu fonksiyon maalesef yoktu ve düzgün olarak toplan sayfayı göremiyordunuz. VS2010 da bu fonsiyonu eklediler AMA kullanırken çok dikkat etmelisiniz. yoksa YANLIŞ toplan sayfa değerini alırsınız. Gerçek toplam safa sayısını ( Fiziksel olarak A4 boyutunda ) şu şekilde çağırmanız gerek ;

private void Form1_Load(object sender, EventArgs e)
{
reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
// TODO: This line of code loads data into the 'DataSet1.yy' table. You can move, or remove it, as needed.
this.yyTableAdapter.Fill(this.DataSet1.yy);

this.reportViewer1.RefreshReport();
}

private void reportViewer1_RenderingComplete(object sender, Microsoft.Reporting.WinForms.RenderingCompleteEventArgs e)
{
Int32 _a = reportViewer1.GetTotalPages();
MessageBox.Show(_a.ToString());
}

Burda dikkat etmeniz gereken RAPORUN RENDER EDİLMESİDİR. Rapor render edilirken ( yani tüm bilgiler sayfalara yazılıken biraz bekleme olur ) o enada GetTotalPages() size SIFIR değeri döndürür. Onun için RenderingComplete fonksiyonunda toplam sayafı alın.