C#创建数据库类

时间:2017-01-24 07:41:32

标签: c# mysql

我想创建一个处理我所有Database-Stuff的类,所以我从这开始:

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;
            }
        }
    }
}

但我不知道我应该如何处理插入,更新和选择它们是动态的。我想插入字符串,日期和整数..什么是创建可以在任何地方使用的插入,更新和选择函数的最佳解决方案?

1 个答案:

答案 0 :(得分:1)

您有两种选择。

A)为数据库类中的每个可能的选择/插入/更新/删除创建方法

B)制作一个通用的Select和Insert / Update / Delete方法,它接受sql查询(字符串)和SqlParameter的数组/列表,然后将这些数据传递给另一个类的函数

Select方法应该返回一个DataTable,而Insert / Update / Delete方法可以返回一个值来确定成功

我个人更喜欢选项B.