29 Kasım 2012


cannot connect to sqlexpress

ADDITIONAL INFORMATION:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)

MSSQL Server kurduktan sonra SQL Server Management Studio kullanarak servera bağlanmaya çalıştığımızda alacağımız hatalardan biri bu olabilir. Daha doğrusu server name (server ismi) bilmiyor olabiliriz. SQL Server Management Studio 'ı açtığımızda otomatik olarak server name'in gelmesi için aşağıdaki işlemleri uyguluyoruz.

Çalıştırı açmak için Windows tuşu + R
Run -> services.msc

21 Kasım 2012

ERROR You don't have permission to open this file.
Contact the file owner or an administrator to obtain permission.

Visual Studio platformunda Database Explorer'dan yeni bağlantı oluşturmaya çalışırken alabileceğiniz hatalardan biridir. Hatanın sebebi, dosya erişimine izniniz olmamasıdır.

Çözüm 1 : Visual Studio'yu admininstrator olarak çalıştırın

Çözüm 2 : Ulaşmaya çalıştığınız veritabanı dosyasını, ulaşılabilir bir dizine(klasöre) kopyalayıp ulaşmayı deneyin.(Örnek : C:/TestDb/)

Çözüm 3 : İlgili dizine ulaşım izni verin ;)

---------------------------------------------------

Bunları yaptıktan sonra başka bir hatayla karşılaşmanız da muhtemeldir:


ERROR This file is in use. Enter a new name or close the file that's open in another program.

Bunun çözümü de; Çalıştır'a services.msc (Services - Hizmetler ekranı) yazıp çıkan ekrandan sqlserver servisini bulup durdukduktan sonra tekrar visual studio'ya geri dönüp bağlanmaktır. Bağlandıktan sonra server erişim hatası verecektir, services.msc 'den tekrar SqlServer servisini başlatmanız yeterli olacaktır.


Umarım yardımcı olabilmişimdir, kolay gelsin...
yorumlarınızı eksik etmeyin :))

20 Kasım 2012

ERROR No rows were deleted.
A problem occurred attempting to delete row 1.
Error Source: Microsoft.SqlServer.Management.DataTools.
Error Message: The row value(s) updated or deleted either do not make
the row unique or they alter multiple rows(3 rows).

Correct the errors and attempt to delete the row again or press ESC to
cancel the change(s).

Microsoft SQL Server Management kullanmaya başlayan arkadaşların, kayıt silerken karşılabileceği hatalardan biridir. Bu hatanın sebebi primary key kullanmamanız ve bu yüzden aynı kaydın birçok kez aynı tabloya eklenmesidir. Aynı kaydın birden fazla olduğu durumlarda Tool üzerinden silme, değiştirme işlemi yapılamamaktadır. Bunun yerine işimizi sql cümleciği ile halletmemiz gerekir.






DELETE FROM [DB_Proje].[dbo].[Deneme] WHERE [num] = 0.12

Umarım yardımcı olabilmişimdir, kolay gelsin...
yorumlarınızı eksik etmeyin :))

19 Kasım 2012

ERROR
Saving changes is not permitted. The changes you have made require the
following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the tables to be re-created.

Mssql Server'da oluşturulmuş bir tabloda değişiklik yapmaya kalkıştığımızda, yukarıdaki hatayı alırız. Bunun sebebi;  "oluşturulmuş tablo üzerinde istenmeden yanlışlıkla yapılacak değişiklikleri engellemek" amacıyla oluşturulmuş tablo değiştirememe özelliğinin default olarak aktif olmasıdır.

Sorunun çözümü :

Tools -> Options 

açılan pencerede 

Designers -> Table and Database Designers 

"Prevent saving changes that require table re-creation" kutucuğundaki işareti kaldırmak...





Umarım yardımcı olabilmişimdir, kolay gelsin...
yorumlarınızı eksik etmeyin :))

Başlangıç seviyesi için detaylı araştırdım ve türkçe olarak sunuyorum :)

"app.config", istediğimiz kurulum özellikleri içeren, küçük projelerde kendisine ihtiyaç duymadığımız, xml tabanlı dosyadır. Birtakım özellikleri kodun içine gömmek yerine, app.config dosyasına yazarız.

Yararları :
  • Standartlaşmayı başarmıştır kendisi... Grup olarak çalıştığınız projelerde kolaylık sağlar, ya da yazdığınız bir projeye başkası devam etmek zorunda kaldığında, "Allah razı olsun" dedirtir :)
  • Büyük projelerde kod tekrarını azaltır.
Başta görünen yararları bunlar. Özellikle veritabanı bağlantısı kurulacağı zaman "connectionstring"in app.config dosyasına yazıldığını yoğun olarak görmüşsünüzdür. 

Burada aklıma şu takıldı : 
"connectionstring"i değişmemiz gerektiği zaman ya da birden çok yerde kullanmamız gerektiği zaman yararlı(exe'ye dokunmadan app.config üzerindeki değişiklik ile işimiz hallolur); ama veritabanı bağlantısı bilgilerimi neden app.config dosyasına yazıp da bilgilere rahatça ulaşılmasına neden olayım ki ? ( Kodun içerisine gömdüğümüz zaman exe'yi ya da dll'i decompile edip biraz uğraştırmak varken :)) 

Microsoft amca, bunu tabi ki düşünüp "connectionstring"i şifreleme methotlarını da bizlerden eksik etmemiş.

Geçelim uygulamalara :

Öncelikle app.config ile connectionstring kullanımından başlayalım, daha sonra şifreleme işlemlerine geçelim:


  • İlk olarak projenize System.Configuration referansını ekliyoruz ve kullanacağımız classta using System.Configuration; eklemeyi unutmuyoruz :)

  • Ctrl + Shift + A   yaparak açılan pencerede Application Configuration File seçip ismini değiştirmeden dosyamızı oluşturup projemize ekliyoruz.

  • app.config dosyamızı aşağıdaki gibi kendi bilgilerinizle dolduruyorsunuz, username ve şifre kullanıyorsanız, connectionstringe ekleyin...
<configuration>
  <connectionStrings>
    <add name="MyDBConnectionString" connectionString="server=.\SQLEXPRESS;database=db_deneme;trusted_connection=true;connection timeout=30"/>
  </connectionStrings>
</configuration>
  •  Kodumuzda çağırırken de ;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString);
try
{
 conn.Open();
}
catch (Exception)
{
 MessageBox.Show("!!! Veritabanı bağlantısı kurulamadı.");
}

Ve böylelikle, veritabanı bağlantısı için gerekli olan connectionstring'i app.config dosyasından çekmiş olduk.

---------------------------------------------------------------------

Şimdi gelelim, güvenlik konusuna... Güvenlik için connectionstring'i şifreleyen methoda göz atalım..


Configuration config = ConfigurationManager.OpenExeConfiguration("deneme.exe");

ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;


"deneme.exe" projemizin adının exe dosyası, default olarak debug klasörünün içinde olduğu için path vermiyoruz. Bu exe'nin app.config dosyası için "configuration" nesnesi oluşturduk ve bu nesnedeki "connectionStrings" isimli bölüm için de "section" nesnesi oluşturduk.

Section nesnesinin korumalı ise korumasız hale, korumasız ise korumalı hale getiren kodu aşağıda verelim :


if (section.SectionInformation.IsProtected)
{
 section.SectionInformation.UnprotectSection();
}
else
{
 section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
}


Son olarak config nesnemizi kaydedelim.


config.Save();

kendinize göre bu kodları projenize ekleyip, müşterinizin bilgisayarına kuracağınız zaman app.config dosyasını  şifreleyip korumalı hale getirebilirsiniz.

Not: app.config dosyası debug edildikten sonra "uygulamaismi.exe.config" olarak "debug" klasörüne kaydedilir, oradan korumalı haline bakabilirsiniz.


Umarım yardımcı olabilmişimdir, kolay gelsin...
yorumlarınızı eksik etmeyin :))


Bu Blogda Ara

İletişim

Ad

E-posta *

Mesaj *