C# Windows Form uygulamamın setupı bir türlü sql olmayan bir bilgisayarda gerçekleştiremedim. Daha doğrusu Kurulumda sıkıntı olmuyo fakat pc de sql olmadığı için programı çalıştırmıyor. Bu konuda bana yardımcı olabilecek varmı??
Bu konunun bazı forumlarda açıldığını gördüm. Sizin ve diğer bu konuda yardım bekleyen arkadaşlar için ayrıntılı bir anlatım yapacağım.
Öncelikle sizin sorununuzun "Uygulamanın yüklendiği bilgisayarda, uygulama için gereken tabloların otomatik olarak oluşturulması" olduğunu varsayıyorum. Öncelikle bu mantıktan gidersek diğer sistemde SQL yüklü olması gerekir ama kullanıcıya bunu şart tutamazsınız. Dolayısıyla siz her işlemi uygulamanın içinde hallediceksiniz. Bunun için kullanacağınız teknoloji LINQ. Ancak LINQ kullanırsanız LINQ sınıfından kodları kullanacağımız için kullandığınız normal parametreler çalışmayacaktır. Bunun içinde bu teknolojiyi anlatan youtube videolarına 1-2 saatinizi ayırırsanız basit düzeydi bir LINQ TO SQL projesi geliştirebilirsiniz.
Web sitemden alıntı yapıyorum buyrun,
---C# dili üzerinden geliştirmekte olduğumuz projemizde veritabanı üzerinden işlemler yapmak isteyebiliriz. Bunun için gerekli olan standart ayarlar vardır.
Ancak projeyi taşıdığımız zaman şu problemler ortaya çıkabilir.
- Farklı bir sisteme kurulduğunda Connection String yani bağlantı cümlesinde belirtilen özellikler ile ilgili problemler çıkabilir.
- Bağlantı cümlesini global olarak tanımlasanız da bu defada veritabanının kendisini projenin içerisine dahil etmeniz gerekir.
- Kendi sisteminize ait dosya yolu gösterilir ise bu başka bir bilgisayarda uygulamanın veritabanını bulamamasına neden olacaktır.
Buda demek oluyor ki veritabanı ile çalışan bir uygulamamız var ise ve bunu başka bir sistemde kullanmak istiyorsak veritabanının proje ile entegre halde gitmesi gerekir. En basit halini şöyle anlatabiliriz.

Projemizi oluşturduktan sonra Solution Explorer bölümünden veritabanımız için özel Class oluşturacağız.

Data sekmesinden Services-based database sınıfından yeni bir tane oluşturuyoruz.

Öğemizi oluşturduktan sonra Solution Explorer üzerinden oluşturulan itemi çift tıklayarak şu panele ulaşıyoruz. Daha sonra New Table seçeneği ile açılan pencereden gerekli tablo ayarlarını yapıyoruz.


Tablo ayarlarımız bittikten sonra LINQ TO SQL kullanımı için tekrar Projemize gelerek > Add > New Class > Data > LINQ itemini projemize ekliyoruz.

LINQ sınıfımız oluştuktan sonra karşımıza gelen panele tablolarımızı sürükle bırak şekli ile atıyoruz.

Sürükle bırak işlemini yaparak DataClass içerisinde hangi tabloların bulunacağını belirtmiş olduk. Şimdi sıra geldi bu tablo üzerinde işlem yapmaya.
Benim örnek olarak oluşturduğum “Örnek” adlı tablonun 2 farklı sütünu “Adi”,”Soyadi” şeklinde.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OrnekProje
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataClasses1DataContext db = new DataClasses1DataContext();
// Sınıfımız için isim türettik.
private void Form1_Load(object sender, EventArgs e)
{
var sorgula = from s in db.Orneks
where s.İsim == "samet" && s.Soyisim == "uca"
select s;
// Var ise
if(sorgula.Any())
{
MessageBox.Show("Var","",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Yok","",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
}
}
}
Görsel olarak,

Bu şekilde veritabanımızı projemiz ile otomatik taşıyabiliriz bunun yanı sıra
SETUP haline getirilmiş projelerde ekstra bir veritabanı ayarı yapmaya gerek kalmayacaktır.