Feedback

C# - MySql-Klasse mit Füllen einer DataTable und Parametern

Veröffentlicht von am 15.08.2019
(0 Bewertungen)
Hallo,
da ich sehr oft auf einen MySql Server zugreife und dort Abfragen ausführe und das Ergebnis in einer DataTable brauche, habe ich mir eine Klasse dafür erstellt.
Die Klasse baut den Connection String, kann mit Paramater umgehen und eine DataTable füllen und Updaten...

Anwendung:

var con = new MySQL("IP-Adresse","UserName","PassWord","DatenBankName",300);
con.FillDataTable(dtTest,"Select * From Tabelle", param)
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

namespace Connection.DataBaseServer
{
    public class MySQL
    {
	    protected string Server { get; set; }
        protected string User { get; set; }
        protected string Pass { get; set; }
        protected string DbName { get; set; }
        protected int TimeOut { get; set; }

        public MySQL(string server, string user, string pass, string dbname, int timeout)
        {
            this.Server = server;
            this.User = user;
            this.Pass = pass;
            this.DbName = dbname;
            this.TimeOut = timeout;
        }

        public void ExecuteNonQuery(string query)
        {
            ExecuteNonQuery(query, null);
        }

        public void ExecuteNonQuery(string query, Dictionary<string, object> param)
        {
            using (MySqlConnection con = new MySqlConnection(GenerateConnectionString()))
            {
                con.Open();
                using (MySqlCommand cmd = new MySqlCommand(query, con))
                {
                    FillParams(cmd, param);
                    cmd.ExecuteNonQuery();
                }
            }
        }

        public int CountDataTable(DataTable dt, string query)
        {
            return CountDataTable(dt, query, null);
        }

        public int CountDataTable(DataTable dt, string query, Dictionary<string, object> param)
        {
            using (MySqlDataAdapter adap = new MySqlDataAdapter(query, GenerateConnectionString()))
            {
                FillParams(adap.SelectCommand, param);
                adap.Fill(dt);
                return dt.Rows.Count;
            }
        }

        public void FillDataTable(DataTable dt, string query, Dictionary<string, object> param)
        {
            using (MySqlDataAdapter adap = new MySqlDataAdapter(query, GenerateConnectionString()))
            {
                FillParams(adap.SelectCommand, param);
            }
        }
        public void UpdateDataTable(DataTable dt, MySqlDataAdapter adap, Dictionary<string, object> param)
        {
            MySqlCommandBuilder cmdBuilder = new MySqlCommandBuilder(adap);
            FillParams(cmdBuilder.GetUpdateCommand(), param);
            adap.Update(dt);
        }

        protected virtual string GenerateConnectionString()
        {
            MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder();
            csb.Server = Server;
            csb.UserID = User;
            csb.Password = Pass;
            csb.Database = DbName;
            csb.ConnectionTimeout = (uint)TimeOut;
            return csb.ToString();
        }

        protected void FillParams(MySqlCommand cmd, Dictionary<string, object> param)
        {
            if (param == null)
                return;
            foreach (var keyvalue in param)
            {
                cmd.Parameters.AddWithValue(keyvalue.Key, keyvalue.Value);
            }
        }
    }
}
Abgelegt unter MySql, Datenbank, C#.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!