🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / MSSQL SQL Server ı gömülü setup yapma oluşturma

1-) C# RMOS - MSSQL SQL Server ı gömülü setup yapma oluşturma

 

kaynak : http://roboturka.com/sql-server-ve-arduino/3-ders-c-ve-sql-server-setup-olusturma/

kaynak : https://youtu.be/g9RE_1ztEug

 

 

c# InstallShield indir ve kur. VS2015  crackli olsun veya olmadan da olabilir.

 

2-) BUNUNLA YAP DAHA İYİ->VS Installer ilede yapılabilir. Aşağıdan indirip kurabilirsin VS2015 için

 

https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2015InstallerProjects

 

 

3-) EN İYİ YÖNTEM

.mdf ve .log dosyasını C#'a Existing item diyerek DATASET olarak ekle

 

c:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL

 

4-) En iyisinin en iyisi

 

 

oluşturduktan sonra aynı SQL Server gibi tablolarını oluştur identity pk felan yap

AŞAĞIDAKİ RESİMDEKİ ALANLARI KURCALAYABİLİRSİN

 

 

5-) Publish Ederken bunları seçeceksin

 

aşağıdaki gibi hata alırsan bunu yükle ->  ekle kaldırdan VS2015 i değiştir -> update modify yap

 

 

 

 

**************************APP.CONFİG VE VERİTABANI***********************

1-) C# RMOS - App.config

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <startup>

        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />

    </startup>

 

  <connectionStrings>

    <add name="MyCon" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=c:\Users\ramazan\Documents\Visual Studio 2015\Projects\SQLServerSetup\SQLServerSetup\ogrenci.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />

  </connectionStrings>

</configuration>

 

   2-) RHVeritabani.cs

 

/*  -owner = Ramazan HABER- -date= 28.02.2018- -descreption= Veri Tabani İşlemleri- */

/* select Cast('' As Nvarchar(50)) as giderSure,* from uHKistekler  */

using System;

using System.Data.SqlClient;

using System.Data;

using System.Collections.Generic;

using System.IO;

using System.Configuration;

 

namespace SQLServerSetup.Library

{

    public class RHVeritabani

    {

 

        public static string connstr = ConfigurationManager.ConnectionStrings["MyCon"].ToString();

//"Data Source='RAMBO';Initial Catalog=SETUPPROJESI; Persist Security Info=True;uid='sa';pwd='123'";

        public static SqlConnection con = new SqlConnection(connstr);

 

        public static void MyConYenile()

        {

            try

            {

                connstr = "Data Source='RAMBO';Initial Catalog=SETUPPROJESI; Persist Security Info=True;uid='sa';pwd='123'";

                con = new SqlConnection(connstr);

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyConYenile", "", ex);

            }

        }

 

        /*Aşağısı benim*/

        public static string MyClassIsmi = "RHVeritabani";

        //static SqlConnection con;

        static SqlTransaction tran;

 

 

        //RHVeritabani.MyServerInfo("RAMAZANPC", "OrderTakerUltimate", "sa", "123");

        /// <summary>

        /// Veri tabanı bağlantıları için constructor(kurucu metot)

        /// </summary>

        /// <param name="pServerName"></param>

        /// <param name="pVeriTabani"></param>

        /// <param name="pUserName"></param>

        /// <param name="pPassword"></param>

        public static void MyServerInfo(string pServerName, string pVeriTabani, string pUserName, string pPassword) // KULLANILMIYOR ARTIK

        { // yüklenince

            try

            {

                con = new SqlConnection("server=" + pServerName + "; Initial Catalog=" + pVeriTabani + ";User id=" + pUserName + ";Password=" + pPassword + ";Integrated Security=SSPI");

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "RHVeritabani_C", "Bağlantı Açılamıyor!", ex);

            }

        }

 

        /// <summary>

        /// Transaction başlatır

        /// </summary>

        public static void MyBeginTransaction()

        {

            try

            {

                MyOpen();

                tran = con.BeginTransaction();

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyBeginTransaction", "Beklenmedik Hata!", ex);

            }

        }

 

        /// <summary>

        /// Transaction kayıt eder

        /// </summary>

        public static void MyCommit()

        {

            try

            {

                MyOpen();

                tran.Commit();

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyCommit", "Beklenmedik Hata!", ex);

            }

        }

 

        /// <summary>

        /// Transaction iptal eder

        /// </summary>

        public static void MyRollback()

        {

            try

            {

                MyOpen();

                tran.Rollback();

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyRollback", "Beklenmedik Hata!", ex);

            }

        }

 

 

        public static void MyOpen()

        {

            try

            {

                if (con.State == ConnectionState.Closed)

                { // kapalıysa aç

                    con.Open();

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyOpen", "Bağlantı Açılamıyor!", ex);

            }

        }

        public static void MyClose()

        {

            try

            {

                if (con.State == ConnectionState.Open)

                { // açıksa kapat

                    con.Close();

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyClose", "Bağlantı Kapatılamıyor!", ex);

            }

        }

 

        /// <summary>

        /// Gelen Sql Sorgusuna Göre Geriye DataTable Döndürür. Tablo Boş veya Sorgu hatalıysa NULL döner

        /// </summary>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static DataTable MyGetDataTable(string pSqlText) //

        { // datatable boş ise veya hata verirse null döner

            try

            {

                MyOpen();

                SqlCommand command = new SqlCommand(pSqlText, con);

                SqlDataReader dataReader = command.ExecuteReader();

                DataTable dt = new DataTable();

                dt.Load(dataReader);

                foreach (System.Data.DataColumn col in dt.Columns) col.ReadOnly = false; //

                dataReader.Close();

                MyClose();

                return dt;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyGetDataTable", "Beklenmedik Hata!", ex);

                MyClose();

                return null;

            }

        }

 

        /// <summary>

        /// insert,update,delete için Bu metodu kullan! HATALI VEYA YANLIŞ BİLGİ GİRİLİRSE -1 DÖNER

        /// </summary>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static int MySetQuery(string pSqlText)

        { // insert,update,delete de kullanılır. -1 dönerse hatalı veya yanlış giriştir. aksi durumda başarılı

            try

            {

                MyOpen();

                SqlCommand command = new SqlCommand(pSqlText, con);

                int value = command.ExecuteNonQuery();

                MyClose();

                return value;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MySetQuery", "Beklenmedik Hata!", ex);

                MyClose();

                return -1;

            }

        }

        /// <summary>

        /// TOP 1 ile veya SUM,MAX gibi tek alan döndüreceksek kullanılır. Veri yoksa veya hataya düşerse -1 döner

        /// </summary>

        /// <param name="pDonecekDeger"></param>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static string MyGetItem(string pDonecekDeger, string pSqlText)

        { // hatalı veya veri yoksa -1 döner . aksi durumda veri döner. Dikkat tek değer döner "Top 1","id" gibi alanlar için kullan!

            try

            {

                MyOpen();

                string DonecekDeger = "-1";

                SqlCommand command = new SqlCommand(pSqlText, con);

                SqlDataReader dataReader = command.ExecuteReader();

                DataTable dt = new DataTable();

                dt.Load(dataReader);

                if (dt.Rows.Count > 0)

                { //

                    foreach (DataRow item in dt.Rows)

                    {

                        DonecekDeger = item[pDonecekDeger].ToString();

                    }

                }

                dataReader.Close();

                MyClose();

                return DonecekDeger;

            }

            catch (Exception ex)

            {

                MyClose();

                throw new Exception(ex.Message);

            }

        }

 

        /******** aşağısını procedure kullancaksan kullan *************/

        /// <summary>

        /// Procedureli -> insert,update,delete için Bu metodu kullan! HATALI VEYA YANLIŞ BİLGİ GİRİLİRSE -1 DÖNER

        /// </summary>

        /// <param name="spName"></param>

        /// <param name="sp"></param>

        /// <returns></returns>

        public static int MySetQuery_P(string pProcedureName, List<SqlParameter> pSqlParameter = null)

        {

            try

            {

                MyOpen();

                int value = -1;

                SqlCommand command = new SqlCommand(pProcedureName, con);

                command.CommandType = CommandType.StoredProcedure;

                if (pSqlParameter != null)

                {

                    command.Parameters.AddRange(pSqlParameter.ToArray());

                }

                value = command.ExecuteNonQuery();

                MyClose();

                return value;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MySetQuery_P", "Beklenmedik Hata!", ex);

                MyClose();

                return -1;

            }

        }

        /* MySetQuery_P metodunun kullanımı aşağıda "SqlDbType" yazmaya bilirsin sıralamaya dikkat et yeter

         List<SqlParameter> sp = new List<SqlParameter>(){

    new SqlParameter() {ParameterName = "@uAlanTanim_ad", SqlDbType = SqlDbType.NVarChar, Value= txtAd.EditValue.ToString()},

    new SqlParameter() {ParameterName = "@uAlanTanim_durum", SqlDbType = SqlDbType.Bit, Value = radioAktif.Checked}};

                RHVeritabani.MySetQuery_P("uAlanTanimEkle", sp);

 

            // SqlDbType olmamış şeklinde

            List<SqlParameter> sp = new List<SqlParameter>(){

    new SqlParameter() {ParameterName = "@uAlanTanim_ad", Value= txtAd.EditValue.ToString()},

    new SqlParameter() {ParameterName = "@uAlanTanim_durum", Value = radioAktif.Checked}};

                RHVeritabani.MySetQuery_P("uAlanTanimEkle", sp);

             */

 

        /******** aşağısını transaction kullancaksan kullan ve MyOpen ve Close lar arasına yaz çünkü onlar yok aşağıda *************/

 

        /// <summary>

        /// Gelen Sql Sorgusuna Göre Geriye DataTable Döndürür. Tablo Boş veya Sorgu hatalıysa NULL döner

        /// </summary>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static DataTable MyGetDataTable_T(string pSqlText)

        { // datatable boş ise veya hata verirse null döner

            try

            {

                SqlCommand command = new SqlCommand(pSqlText, con);

                command.Transaction = tran;

                SqlDataReader dataReader = command.ExecuteReader();

                DataTable dt = new DataTable();

                dt.Load(dataReader);

                foreach (System.Data.DataColumn col in dt.Columns) col.ReadOnly = false;

                dataReader.Close();

                return dt;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyGetDataTable", "Beklenmedik Hata!", ex);

                return null;

            }

        }

 

        /// <summary>

        /// insert,update,delete için Bu metodu kullan! HATALI VEYA YANLIŞ BİLGİ GİRİLİRSE -1 DÖNER

        /// </summary>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static int MySetQuery_T(string pSqlText)

        { // insert,update,delete de kullanılır. -1 dönerse hatalı veya yanlış giriştir. aksi durumda başarılı

            try

            {

                SqlCommand command = new SqlCommand(pSqlText, con);

                command.Transaction = tran;

                int value = command.ExecuteNonQuery();

                return value;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MySetQuery", "Beklenmedik Hata!", ex);

                return -1;

            }

        }

        /// <summary>

        /// 1 tane değer döndüren SQL sorgularında Kullanılır. Örn : ID'ye göre Kodunu almak istersek veya TOP 1 ile veya SUM,MAX gibi tek alan döndüreceksek kullanılır.

        /// </summary>

        /// <param name="pDonecekDeger"></param>

        /// <param name="pSqlText"></param>

        /// <returns></returns>

        public static string MyGetItem_T(string pDonecekDeger, string pSqlText)

        { // hatalı veya veri yoksa -1 döner . aksi durumda veri döner. Dikkat tek değer döner "Top 1","id" gibi alanlar için kullan!

            try

            {

                string DonecekDeger = "-1";

                SqlCommand command = new SqlCommand(pSqlText, con);

                command.Transaction = tran;

                SqlDataReader dataReader = command.ExecuteReader();

                DataTable dt = new DataTable();

                dt.Load(dataReader);

                if (dt.Rows.Count > 0)

                { //

                    foreach (DataRow item in dt.Rows)

                    {

                        DonecekDeger = item[pDonecekDeger].ToString();

                    }

                }

                dataReader.Close();

                return DonecekDeger;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClassIsmi, "MyGetItem", "Beklenmedik Hata!", ex);

                return "-1";

            }

        }

    }

}

 

 

2-) Örnek Main.cs ve Entity Framework Gömülü Veri tabanında kullanımı

 

using DevExpress.XtraReports.UI;

using FisBas.Library;

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.Entity;

using System.IO;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Linq;

using DevExpress.XtraGrid;

 

namespace FisBas

{

    public partial class Main : Form

    {

        FisDBEntities db = new FisDBEntities();

        public Main()

        {

            InitializeComponent();

        }

        public static string MyClass = "Main";

        XtraReport1 report;

 

     

 

        public void MyRaporGoster(bool pDuzen)

        {

            try

            {

                if (gridView1.FocusedRowHandle > -1)

                {

                    int fis_id = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_id"]).ToString());

                    report = new XtraReport1();

                    Task<List<Fis>> sa = db.Fis.SqlQuery("select top 1 * from Fis where Fis_id="+ fis_id).ToListAsync();

                    if (sa.Result.Count >0)

                    {

                        if (File.Exists(@"ayarlar\ese.repx"))

                        {

                            report.LoadLayout(@"ayarlar\ese.repx");

                            report.DataSource = sa.Result;

                        }

                        if (pDuzen) report.ShowDesigner();

                        else report.ShowPreview();

                    }

                    else

                    {

                        RHMesaj.MyMessageInformation("Raporlanacak Veri Yok!");

                    }

                }else

                {

                    RHMesaj.MyMessageInformation("Lütfen Satır Seçiniz!");

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "MyRaporGoster", "", ex);

            }

        }

 

        private void btnFisBas_Click(object sender, EventArgs e)

        {

            MyRaporGoster(false);

        }

 

        private void simpleButton1_Click(object sender, EventArgs e)

        {

            MyRaporGoster(true);

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.BonusSkins).Assembly);

            DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.OfficeSkins).Assembly);

            DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Money Twins";

            this.defaultLookAndFeel1.LookAndFeel.SkinName = "Money Twins";

 

            dateTarih.EditValue = DateTime.Now;

            dateTeslimTarih.EditValue = DateTime.Now.AddDays(7);

            MyLoad();

        }

        public void MyLoad()

        {

            try

            {

                Task<List<Fis>> sa = db.Fis.SqlQuery("select * from fis").ToListAsync();

                gridControl1.DataSource = sa.Result;

                gridView1.BestFitColumns();

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "MyLoad", "", ex);

 

            }

        }

 

        public Fis MyGetFis()

        {

            try

            {

                Fis fis = new Fis();

                fis.Fis_aciklama = txtAciklama.Text;

                fis.Fis_ad = txtAd.Text;

                fis.Fis_adres = txtAdres.Text;

                fis.Fis_marka = txtMarka.Text;

                fis.Fis_model = txtCihazModeli.Text;

                fis.Fis_serino = txtCihazSeriNo.Text;

                fis.Fis_sikayet = txtSikayet.Text;

                fis.Fis_soyad = txtSoyad.Text;

                fis.Fis_tarih = Convert.ToDateTime(dateTarih.EditValue);

                fis.Fis_tel = txtTel.Text;

                fis.Fis_teslimTarih = Convert.ToDateTime(dateTeslimTarih.EditValue);

                fis.Fis_garanti = radioGroup1.EditValue.ToString();

                return fis;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "MyGetFis", "", ex);

                return null;

            }

        }

        private void btnKaydet_Click(object sender, EventArgs e)

        {

            try

            {

                Fis fis = MyGetFis();

                if (fis != null)

                {

                    db.Fis.Add(fis);

                    db.SaveChanges();

                    MyLoad();

                    gridView1.MoveLast();

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "btnKaydet_Click", "", ex);

 

            }

        }

 

        private void btnSil_Click(object sender, EventArgs e)

        {

            try

            {

                if (gridView1.FocusedRowHandle > -1)

                {

                    int fis_id = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_id"]).ToString());

                    Fis fis = db.Fis.Find(fis_id);

                    db.Fis.Remove(fis);

                    db.SaveChanges();

                    MyLoad();

                    gridView1.MoveFirst();

                }

 

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "btnSil_Click", "", ex);

            }

        }

 

        private void btnGuncelle_Click(object sender, EventArgs e)

        {

            try

            {

                Fis fis_yedek = MyGetFis();

                if (gridView1.FocusedRowHandle > -1 && fis_yedek != null)

                {

                    int aSeciliSatir = gridView1.FocusedRowHandle;

 

                    int fis_id = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_id"]).ToString());

                    Fis fis = db.Fis.Find(fis_id);

                    fis.Fis_aciklama = fis_yedek.Fis_aciklama;

                    fis.Fis_ad = fis_yedek.Fis_ad;

                    fis.Fis_adres = fis_yedek.Fis_adres;

                    fis.Fis_garanti = fis_yedek.Fis_garanti;

                    fis.Fis_marka = fis_yedek.Fis_marka;

                    fis.Fis_model = fis_yedek.Fis_model;

                    fis.Fis_serino = fis_yedek.Fis_serino;

                    fis.Fis_sikayet = fis_yedek.Fis_sikayet;

                    fis.Fis_soyad = fis_yedek.Fis_soyad;

                    fis.Fis_tarih = fis_yedek.Fis_tarih;

                    fis.Fis_tel = fis_yedek.Fis_tel;

                    fis.Fis_teslimTarih = fis_yedek.Fis_teslimTarih;

                    db.SaveChanges();

                    MyLoad();

                    gridView1.FocusedRowHandle = aSeciliSatir;

                }

 

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "btnGuncelle_Click", "", ex);

            }

        }

 

        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)

        {

            try

            {

                if (gridView1.FocusedRowHandle > -1)

                {

                  txtFisNo.Text= gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_id"]).ToString();

                  txtAciklama.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_aciklama"]).ToString();

                  txtAdres.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_adres"]).ToString();

                  radioGroup1.EditValue= gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_garanti"]).ToString();

                  txtMarka.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_marka"]).ToString();

                  txtCihazModeli.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_model"]).ToString();

                  txtCihazSeriNo.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_serino"]).ToString();

                  txtSikayet.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_sikayet"]).ToString();

                  txtSoyad.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_soyad"]).ToString();

                  dateTarih.EditValue= gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_tarih"]).ToString();

                  txtTel.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_tel"]).ToString();

                  dateTeslimTarih.EditValue= gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_teslimTarih"]).ToString();

                  txtAd.Text= gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Fis_ad"]).ToString();

 

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "gridView1_FocusedRowChanged", "", ex);

            }

        }

    }

}

 

 2021 Mart 08 Pazartesi
 1,125