🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / MySql dbtools

1-) C# RMOS - MySql dbtools

 

Install Oracle's MySql.Data NuGet package

 

using MySql.Data.MySqlClient;

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.SqlClient;

using System.IO;

 

namespace RomedsanX

{

    public static class dbMySql

    {

 

        public static string server = getir(0);//"192.168.1.29";

        public static string users = getir(1);//"sdp2000";

        public static string pwd = getir(2);//"sdp2000";

        public static string database = getir(3);//"sdp2000";

        public static string port = getir(4);//"3358";

 

        public static string connstr = "";

        public static MySqlConnection con = new MySqlConnection("server=" + server +"; Port="+ port + "; Initial Catalog=" + database + ";User id=" + users + ";Password=" + pwd ); // + ";Integrated Security=SSPI"

        public static string MyClass = "dbtoolsAcente";

        public static MySqlTransaction tran;

 

 

        public static string getir(int i)

        {

            var lines = File.ReadAllLines("server.txt");

 

            return lines[i].Split('=')[1].Trim();

        }

 

        public static StreamReader oku = null;

      public static  string direkKullaniciAd = "rmosxyzrm", direkKullaniciSifre = "123x";

        public static void varsayilanSirketOlustur() // ilk şirketi oluştur

        {

            string server = dbMySql.server;

            string pwd = dbMySql.pwd;

            string users = dbMySql.users;

            string database = dbMySql.database;

 

            string sql = "select top 1 uSirket_id from uSirket where uSirket_server='" + server + "' and uSirket_database='" + database + "' and uSirket_user='" + users + "' and uSirket_password='" + pwd + "'";

            int uSirket_id = Convert.ToInt32(dbMySql.MyGetItem("uSirket_id", sql));

 

            if (uSirket_id == -1)

            {

                uSirket_id = dbMySql.MySetQuery1("insert into uSirket(uSirket_server,uSirket_database,uSirket_user,uSirket_password,uSirket_ad) output INSERTED.uSirket_id values('" + server + "','" + database + "','" + users + "','" + pwd + "','" + database + "')");

            }

 

 

 

            string id = "-1";

            if (uSirket_id != -1)

            {

                string sqlKullanici = "select * from uSirketKullanici where uSirketKullanici_uSirket_id='" + uSirket_id + "' and uSirketKullanici_ad='" + direkKullaniciAd + "' and uSirketKullanici_sifre='" + direkKullaniciSifre + "'";

 

                id = dbMySql.MyGetItem("uSirketKullanici_id", sqlKullanici);

 

 

                bool admin = false;

                if (direkKullaniciAd.ToLower().Equals("rmosxyzrm"))

                {

                    admin = true;

                }

 

                if (id.Equals("-1")&&!direkKullaniciAd.Equals(""))

                {

                    string sqlKullanici1 = @"insert into uSirketKullanici(

                                                          uSirketKullanici_uSirket_id,

                                                          uSirketKullanici_ad,

                                                          uSirketKullanici_soyad,

                                                          uSirketKullanici_sifre,

                                                          uSirketKullanici_tema,

                                                          uSirketKullanici_colorRezAktarilan,

                                                          uSirketKullanici_colorRezAktarilmayan,

                                                          uSirketKullanici_colorRezNew,

                                                          uSirketKullanici_colorRezModified,

                                                          uSirketKullanici_colorRezCancelled,

                                                          uSirketKullanici_admin

                                                          )

                                                          output INSERTED.uSirketKullanici_id

                                                           values(

                                                          '" + uSirket_id + @"',

                                                          '" + direkKullaniciAd + @"',

                                                          '" + direkKullaniciAd + @"',

                                                          '" + direkKullaniciSifre + @"',

                                                          'Money Twins',

                                                          'White#Black',

                                                          'White#Black',

                                                          'White#Black',

                                                          'White#Black',

                                                          'White#Black',

                                                          '"+ admin + "'  )";

 

                    id = dbMySql.MySetQuery1(sqlKullanici1).ToString();

 

                }

            }

 

 

 

            DataTable dtKullanici = dbMySql.MyGetDataTable("select * from uSirketKullanici where uSirketKullanici_id='" + id + "'");

 

            if (dtKullanici == null || dtKullanici.Rows.Count < 1)

            {

                RHMesaj.MyMessageInformation("Yanlış veya Eksik Bilgi! Lütfen Bilgileri Kontrol Ediniz.");

                return;

            }

 

 

        }

 

        public static void varsayilanParametreOlustur() // sıfır veri tabanı kurarken varsayılan paremetreleri oluşturur

        {

            try

            {

                dbMySql.MySetQuery("exec defaultParametre");

            }

            catch (Exception ex)

            {

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

            }

        }

 

        public static string colorRezAktarilan_back = "White";

        public static string colorRezAktarilmayan_back = "White";

        public static string colorRezNew_back = "White";

        public static string colorRezModified_back = "White";

        public static string colorRezCancelled_back = "White";

 

        public static string colorRezAktarilan_fore = "Black";

        public static string colorRezAktarilmayan_fore = "Black";

        public static string colorRezNew_fore = "Black";

        public static string colorRezModified_fore = "Black";

        public static string colorRezCancelled_fore = "Black";

 

 

 

        //public dbtoolsAcentex()

        //{

        //    connstr = "Data Source='" + server + "';Initial Catalog=" + database + "; Persist Security Info=True;uid='" + users + "';pwd='" + pwd + "'";

        //    con = new MySqlConnection(connstr);

        //}

 

        //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 MySqlConnection("server=" + pServerName + "; Initial Catalog=" + pVeriTabani + ";User id=" + pUserName + ";Password=" + pPassword + ";Integrated Security=SSPI");

            }

            catch (Exception ex)

            {

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

            }

        }

 

        public static void MyConYenile()

        {

            try

            {

                connstr = "Data Source='" + server + "';Initial Catalog=" + database + "; Persist Security Info=True;uid='" + users + "';pwd='" + pwd + "'";

                con = new MySqlConnection(connstr);

            }

            catch (Exception ex)

            {

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

            }

        }

 

        public static void MyConYenileParametre(string server, string database, string users, string pwd)

        {

            try

            {

                connstr = "Data Source='" + server + "';Initial Catalog=" + database + "; Persist Security Info=True;uid='" + users + "';pwd='" + pwd + "'";

                con = new MySqlConnection(connstr);

            }

            catch (Exception ex)

            {

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

            }

        }

 

 

        /// <summary>

        /// Transaction başlatır

        /// </summary>

        public static void MyBeginTransaction()

        {

            try

            {

                MyOpen();

                tran = con.BeginTransaction();

            }

            catch (Exception ex)

            {

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

            }

        }

 

        /// <summary>

        /// Transaction kayıt eder

        /// </summary>

        public static void MyCommit()

        {

            try

            {

                MyOpen();

                tran.Commit();

            }

            catch (Exception ex)

            {

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

            }

        }

 

        /// <summary>

        /// Transaction iptal eder

        /// </summary>

        public static void MyRollback()

        {

            try

            {

                MyOpen();

                tran.Rollback();

            }

            catch (Exception ex)

            {

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

            }

        }

 

 

        public static void MyOpen()

        {

            try

            {

                if (con.State == ConnectionState.Closed)

                { // kapalıysa aç

                    con.Open();

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "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(MyClass, "MyClose", "Bağlantı Kapatılamıyor!", ex);

            }

        }

 

 

        static object lockerDbtools = new object();

        /// <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

            {

                lock (lockerDbtools)

                {

                    MyOpen();

                    MySqlCommand command = new MySqlCommand(pSqlText, con);

                    command.CommandTimeout = 0;

                    MySqlDataReader 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(MyClass, "MyGetDataTable", "Beklenmedik Hata!", ex);

                MyClose();

                return null;

            }

        }

 

 

        public static DateTime MyGetDateTime() //

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

            try

            {

                return Convert.ToDateTime(dbMySql.MyGetItem("tarih", "select GETDATE() as tarih")); ;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "MyGetDateTime", "Beklenmedik Hata!", ex);

                MyClose();

                return DateTime.Now;

            }

        }

 

 

        /// <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

            {

                lock (lockerDbtools)

                {

                    MyOpen();

                    MySqlCommand command = new MySqlCommand(pSqlText, con);

                    command.CommandTimeout = 0;

                    int value = command.ExecuteNonQuery();

                    MyClose();

                    return value;

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "MySetQuery", "Beklenmedik Hata! \n " + pSqlText, ex);

                MyClose();

                return -1;

            }

        }

 

        public static int MySetQuery1(string pSqlText)

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

            try

            {

                lock (lockerDbtools)

                {

                    MyOpen();

                    MySqlCommand command = new MySqlCommand(pSqlText, con);

                    command.CommandTimeout = 0;

                    int value = (int)command.ExecuteScalar();

 

                    MyClose();

                    return value;

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "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

            {

                lock (lockerDbtools)

                {

                    MyOpen();

                    string DonecekDeger = "-1";

                    MySqlCommand command = new MySqlCommand(pSqlText, con);

                    command.CommandTimeout = 0;

                    MySqlDataReader 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);

            }

        }

 

        public static byte[] MyGetItemBinary(string pDonecekDeger, string pSqlText) // select case when resimarka is not null then resimarka else resimon end from ocr where id=85

        {

            try

            {

                MyOpen();

                byte[] DonecekDeger = null;

                MySqlCommand command = new MySqlCommand(pSqlText, con);

                command.CommandTimeout = 0;

                MySqlDataReader dataReader = command.ExecuteReader();

                DataTable dt = new DataTable();

                dt.Load(dataReader);

                if (dt.Rows.Count > 0)

                { //

                    foreach (DataRow item in dt.Rows)

                    {

                        DonecekDeger = (byte[])item[pDonecekDeger];

                    }

                }

                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

            {

                lock (lockerDbtools)

                {

                    MyOpen();

                    int value = -1;

                    MySqlCommand command = new MySqlCommand(pProcedureName, con);

                    command.CommandTimeout = 0;

                    command.CommandType = CommandType.StoredProcedure;

                    if (pSqlParameter != null)

                    {

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

                    }

                    value = command.ExecuteNonQuery();

                    MyClose();

                    return value;

                }

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "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

            {

                MySqlCommand command = new MySqlCommand(pSqlText, con);

                command.CommandTimeout = 0;

                command.Transaction = tran;

                MySqlDataReader 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(MyClass, "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

            {

                MySqlCommand command = new MySqlCommand(pSqlText, con);

                command.CommandTimeout = 0;

                command.Transaction = tran;

                int value = command.ExecuteNonQuery();

                return value;

            }

            catch (Exception ex)

            {

                RHMesaj.MyMessageError(MyClass, "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";

                MySqlCommand command = new MySqlCommand(pSqlText, con);

                command.CommandTimeout = 0;

                command.Transaction = tran;

                MySqlDataReader 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(MyClass, "MyGetItem", "Beklenmedik Hata!", ex);

                return "-1";

            }

        }

    }

}

 

 2021 Mart 08 Pazartesi
 530