C# form projesi başka bir bilgisayarda veri tabanı hatası veriyor

NLRezonance

Hectopat
Katılım
12 Mayıs 2020
Mesajlar
614
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Meslek
Gayrimeşru danışmanı
C# form projem kendi bilgisayarımda herhangi bir sıkıntı çıkarmıyor fakat başka bir bilgisyara kurunca kullanıcı işlemleri yaparken veri tabanı hatası alıyorum. En basit yollu olarak bunu nasıl yapabilirim? Programımda internet bağlantısına gerek yok.
 

Dosya Ekleri

  • WhatsApp Görsel 2024-01-10 saat 21.04.54_321843c2.jpg
    WhatsApp Görsel 2024-01-10 saat 21.04.54_321843c2.jpg
    69,2 KB · Görüntüleme: 35
Hangi veritabanını kullanıyorsun? Büyük ihtimal MSSQL kullanıyorsun.
Local de sıkıntı çıkarmamasının sebebi, veritabanının kendi bilgisayarında kurulu olması. Bu sayede programın localhost üzerinden bağlantı sağlayabiliyor.
Şimdi ya kendi bilgisayarını server yapacaksın yada remote server alıp veritabanını oraya taşıyacaksın.
Kendi bilgisayarını yapmakla uğraşma. Remote bir server al ve taşıma yap. Sonra tek yapman gereken; connection string değiştirmek.
Yada SQLite kullanacaksın. SQLite server gerektirmiyor. Tüm veritabanı kullanıcıya ait oluyor. Eğer programın ortak bir verilere erişmek isterse yapamazsın. Detaylarını araştırırsın.
 
Hangi veritabanını kullanıyorsun? Büyük ihtimal MSSQL kullanıyorsun.
Local de sıkıntı çıkarmamasının sebebi, veritabanının kendi bilgisayarında kurulu olması. Bu sayede programın localhost üzerinden bağlantı sağlayabiliyor.
Şimdi ya kendi bilgisayarını server yapacaksın ya da remote server alıp veritabanını oraya taşıyacaksın.
Kendi bilgisayarını yapmakla uğraşma. Remote bir server al ve taşıma yap. Sonra tek yapman gereken; connection string değiştirmek.
Ya da SQLite kullanacaksın. SQLite server gerektirmiyor. Tüm veri tabanı kullanıcıya ait oluyor. Eğer programın ortak bir verilere erişmek isterse yapamazsın. Detaylarını araştırırsın.

İki sorum var. Bu proje zaten dönem ödevim o verilerin güvenliği hiç de önemli değil. Birincisi SQLite kullanmak istersem projemi kökten değiştirmem gerekebilir mi? İkincisi de aynı soru remote server için geçerli.

Ayrıca
Hangi veritabanını kullanıyorsun? Büyük ihtimal MSSQL kullanıyorsun.
Local de sıkıntı çıkarmamasının sebebi, veritabanının kendi bilgisayarında kurulu olması. Bu sayede programın localhost üzerinden bağlantı sağlayabiliyor.
Şimdi ya kendi bilgisayarını server yapacaksın yada remote server alıp veritabanını oraya taşıyacaksın.
Kendi bilgisayarını yapmakla uğraşma. Remote bir server al ve taşıma yap. Sonra tek yapman gereken; connection string değiştirmek.
Yada SQLite kullanacaksın. SQLite server gerektirmiyor. Tüm veritabanı kullanıcıya ait oluyor. Eğer programın ortak bir verilere erişmek isterse yapamazsın. Detaylarını araştırırsın.
Projenin kullanılacağı bilgisayarda MSSQL bulunuyor. Bu veri tabanımı da setup dosyasının içerisine atsam da oradan çeksem hocaya versem nasıl olur?
 
Hangi veritabanını kullanıyorsun? Büyük ihtimal MSSQL kullanıyorsun.
Local de sıkıntı çıkarmamasının sebebi, veritabanının kendi bilgisayarında kurulu olması. Bu sayede programın localhost üzerinden bağlantı sağlayabiliyor.
Şimdi ya kendi bilgisayarını server yapacaksın yada remote server alıp veritabanını oraya taşıyacaksın.
Kendi bilgisayarını yapmakla uğraşma. Remote bir server al ve taşıma yap. Sonra tek yapman gereken; connection string değiştirmek.
Yada SQLite kullanacaksın. SQLite server gerektirmiyor. Tüm veritabanı kullanıcıya ait oluyor. Eğer programın ortak bir verilere erişmek isterse yapamazsın. Detaylarını araştırırsın.
SQLite güvenlik açısından sıkıntılı şifreleme yapmak gerekiyor programı kırarlarsa bir şekilde database dosyasına kolay erişiyorlar.

Online program kodlayanlar genellikle satın aldıkları server üzerinden bağlantı yapmasını sağlıyorlar.
 
SQLite güvenlik açısından sıkıntılı şifreleme yapmak gerekiyor programı kırarlarsa bir şekilde database dosyasına kolay erişiyorlar.

Online program kodlayanlar genellikle satın aldıkları server üzerinden bağlantı yapmasını sağlıyorlar.

Peki bu bağlantıları Online olarak yapma bir sorun yaratır mı?
 
SQLite kullanmak istersem projemi kökten değiştirmem gerekebilir mi?
Projende ne kullandın bilmiyoruz? EntityFramework? Dapper? ADO.NET?

Eğer EntityFramework kullandıysan; 2-3 yerde değişiklik yapıyorsun o kadar.
Dapper veya Ado.NET kullanıyorsan; SQL query'ler değişmiyor fakat connection biçimi değişiyor.
Örneğin; SqlConnection yerine sqliteConnection gibi bişi oluyor. Detaylı hatırlamıyorum dostum. Araştırarak basitçe yapabilirsin.

Kodu nasıl yazdığını bilmediğim için bir şey diyemem. Eğer DB tarafındaki SQL kısmı ayrı bir class olarak geliştirdiysen işin kolay. Diğer türlü her yere connection attıysan uğraştırır durur.
İkincisi de aynı soru remote server için geçerli.
Remote server olayında projede tek değişen kısım connection string kısmı oluyor. Bunu Config dosyasından aldıysan oradan değiştirirsin o kadar. DB taşıma olayını araştırırsın zaten. Bence sen SQLite değiştirmek yerine remote free SQL Server alabileceğin bir servis bulmaya bak. Öğrenci isen güzel siteler var. Azure, Amazon vs.

Projenin kullanılacağı bilgisayarda MSSQL bulunuyor. Bu veri tabanımı da setup dosyasının içerisine atsam da oradan çeksem hocaya versem nasıl olur?
Bunu dinamik(Program içerisinden) yapamazsın diye biliyorum araştırmak lazım. Kullanıcı db dosyalarını içeri aktarabilir. Bir nevi 2. soruda yanıtladığım DB taşıma işlemini gerçekleştirirsin. Buda işe yarar. Fakat programı kullanacak kişi DB yi import etmek zorunda.
 
Peki bu bağlantıları Online olarak yapma bir sorun yaratır mı?
Online çevirimiçi demek. Mesela technopat online bir site. Valorant, CS 2 gibi oyunlar online oyun. Kendi sunucularına bağlanıyor. Yani sana kalmış. Ancak bir proje için online yapma. Çünkü online için server lazım ve serverler paralı oluyor. VDS gibi. Online yaparsan yazacağın kodun mantığına göre kod senin sunucuya bağlanır ve veri çeker/yazar. Sana tavsiyem SQLite kullanman.

Bunu dinamik(Program içerisinden) yapamazsın diye biliyorum araştırmak lazım. Kullanıcı db dosyalarını içeri aktarabilir. Bir nevi 2. soruda yanıtladığım DB taşıma işlemini gerçekleştirirsin. Buda işe yarar. Fakat programı kullanacak kişi DB yi import etmek zorunda.
SQLite online bir sunucu olmadığı için sadece Local üzerinden veri yazabiliyor. Bu da veri saklamak için verimli olduğu anlamına gelir. Ancak benim arkadaşımın yazdığı kod dosya indirme sitesinden database'yi indiriyor ve dosyayı ilgili konuma atıyor bu şekilde database'yi online okuyor. Sonra kimse geri açmasın diye siliyor. (%999 Güvenli veri tabanı koruması (!) )Lakin SQLite'nin çevirimiçi vs. olmasından daha çok olan problem kırılmasıdır. İyi şifrelenmediği takdirde kolay kırılıyor. Dediğiniz gibi azure gibi 1 aylığı ücretsiz olan VDS almak daha mantıklı. Hocasına gösterir işi bitince ödemeyi kapatır para da vermemiş olur.
 
Online çevirimiçi demek. Mesela Technopat Online bir site. Valorant, CS 2 gibi oyunlar Online oyun. Kendi sunucularına bağlanıyor. Yani sana kalmış. Ancak bir proje için Online yapma. Çünkü Online için server lazım ve serverler paralı oluyor. VDS gibi. Online yaparsan yazacağın kodun mantığına göre kod senin sunucuya bağlanır ve veri çeker/yazar. sana tavsiyem SQLite kullanman.

SQLite Online bir sunucu olmadığı için sadece local üzerinden veri yazabiliyor. Bu da veri saklamak için verimli olduğu anlamına gelir. Ancak benim arkadaşımın yazdığı kod dosya indirme sitesinden Database'yi indiriyor ve dosyayı ilgili konuma atıyor bu şekilde Database'yi Online okuyor. Sonra kimse geri açmasın diye siliyor. (%999 güvenli veri tabanı koruması (!) )lakin SQLite'nin çevirimiçi vs. olmasından daha çok olan problem kırılmasıdır. İyi şifrelenmediği takdirde kolay kırılıyor. Dediğiniz gibi Azure gibi 1 aylığı ücretsiz olan VDS almak daha mantıklı. Hocasına gösterir işi bitince ödemeyi kapatır para da vermemiş olur.

Kararımı verdim Azure kullanacağım. Anladığım kadarıyla şu an tek yapmam gereken veri tabanımı Azure'a yüklemek ve bana verilen adres ile connection String'imi değiştirmek.
 

Geri
Yukarı