En iyi yanıtlayıcılar
Veritabanı yardım

Soru
-
Merhaba Üstadlar,
Projemde bir adet Sqlite veritabanı kullanıyorum.Db dosyası Resources klasöründe tutmaktayım.
Herşey çok güzel gidiyordu, program çok iyi çalışıyordu kendi bilgisayarımda kayıt da ekliyordu lakin
ne zaman setup yapıp başka pc'de kurunca sql komutları çalışmıyor yazma izni yok diyor vs.
Yardımcı olabilirseniz çok minnettar kalırım
Yanıtlar
-
Nedeni son derece basit. Program kuruldugunda, buyuk bir ihtimalle "Program Files" altina kurulmustur. Bu dizin, alt dizinleriyle birlikte, sadece okunabilir bir yer. Data dosyalarini oraya koyma, "appdata" altina koy.
Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData) );
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 5 Mayıs 2016 Perşembe 07:31
Tüm Yanıtlar
-
Nedeni son derece basit. Program kuruldugunda, buyuk bir ihtimalle "Program Files" altina kurulmustur. Bu dizin, alt dizinleriyle birlikte, sadece okunabilir bir yer. Data dosyalarini oraya koyma, "appdata" altina koy.
Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData) );
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 5 Mayıs 2016 Perşembe 07:31
-
Nedeni son derece basit. Program kuruldugunda, buyuk bir ihtimalle "Program Files" altina kurulmustur. Bu dizin, alt dizinleriyle birlikte, sadece okunabilir bir yer. Data dosyalarini oraya koyma, "appdata" altina koy.
Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData) ); Console.WriteLine( Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData) );
Hocam çok teşekkür ediyorum iyiki varsınız sizi yakından takip ediyorum :)
Projemde Sqlite kullanıyorum ve dosyam Resources klasöründe db.s3db adlı bir dosya.
Nasıl bir yol izlemem gerektiğini biraz daha açık yazarmısınız hocam zahmet olmassa çünki daha önce böyle birşey yaşamadım.
Çok minnettarım size hocam,sağolun.
-
Cok acik aslinda :) Yukaridaki yerlerden birisini kullan data dosyan icin. Ornegin:
void Main() { //var conn = new SQLiteConnection(@"Data Source="+DataLoc.DataPath); } public class DataLoc { public static string DataPath { get { return GetDataPath(); } } private static string GetDataPath() { string programId = "848189c1-76ea-43b8-94eb-6309f0f6e4f7"; string dataPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), programId); string dbPath = Path.Combine(dataPath, "db.s3db"); if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); // varsa db.s3db'yi kopyala string orijinalDb = @"resources\db.s3db"; File.Copy(orijinalDb, dbPath); File.SetAttributes(dbPath, FileAttributes.Normal); } return dbPath; } }
-
Cok acik aslinda :) Yukaridaki yerlerden birisini kullan data dosyan icin. Ornegin:
void Main() { //var conn = new SQLiteConnection(@"Data Source="+DataLoc.DataPath); } public class DataLoc { public static string DataPath { get { return GetDataPath(); } } private static string GetDataPath() { string programId = "848189c1-76ea-43b8-94eb-6309f0f6e4f7"; string dataPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), programId); string dbPath = Path.Combine(dataPath, "db.s3db"); if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); // varsa db.s3db'yi kopyala string orijinalDb = @"resources\db.s3db"; File.Copy(orijinalDb, dbPath); File.SetAttributes(dbPath, FileAttributes.Normal); } return dbPath; } }
Hocam verdiğniz kodu eksiksiz bir şekilde kullandım fakat bir hata verdi.
Bu hatayı ben db.s3db database dosyasına Copy to Output'u copy if newer yaptıktan sonra düzeliyordu.Lakin burda yolunu belirtiyoruz lakin hata veriyor.Nasıl düzeltebilirim hocam ?
Çok teşekkür ederim
-
-