簡體   English   中英

C#創建數據庫類

[英]C# creating a database class

我想創建一個處理所有數據庫資料的類,因此我從以下內容開始:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace Server
{
    class Database
    {
        private MySqlConnection connection;
        private string server;
        private string database;
        private string uid;
        private string password;

        public Database()
        {
            server = "localhost";
            database = "mydb";
            uid = "root";
            password = string.Empty;

            string connectionString = "SERVER=" + server + ";" + "DATABASE = " + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
        }

        public bool OpenConnection()
        {
            try
            {
                connection.Open();
                return true;
            } catch(MySqlException e)
            {
                switch (e.Number)
                {
                    case 0:
                        // Cannot connect to server
                        break;
                    case 1045:
                        // Invalid username / password
                        break;
                }

                return false;
            }
        }

        private bool CloseConnection()
        {
            try
            {
                connection.Close();
                return true;
            } catch(MySqlException e)
            {
                // ex.message
                return false;
            }
        }
    }
}

但是我不知道我應該如何處理插入,更新和選擇它們對usw是動態的。 我想插入字符串,日期和整數..什么是創建可在任何地方使用的插入,更新和選擇函數的最佳解決方案?

您有兩個選擇。

A)為Database類中的所有可能的Select / Insert / Update / Delete方法

要么

B)制作一個通用的Select and Insert / Update / Delete方法,該方法接受一個sql查詢(字符串)和SqlParameter的數組/列表,然后將該數據從另一個類傳遞給函數

Select方法應該返回一個DataTable,Insert / Update / Delete方法可以返回一個值來確定成功

我個人更喜歡選項B。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM