我想创建一个处理我所有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;
}
}
}
}
但我不知道我应该如何处理插入,更新和选择它们是动态的。我想插入字符串,日期和整数..什么是创建可以在任何地方使用的插入,更新和选择函数的最佳解决方案?
答案 0 :(得分:1)
您有两种选择。
A)为数据库类中的每个可能的选择/插入/更新/删除创建方法
或
B)制作一个通用的Select和Insert / Update / Delete方法,它接受sql查询(字符串)和SqlParameter的数组/列表,然后将这些数据传递给另一个类的函数
Select方法应该返回一个DataTable,而Insert / Update / Delete方法可以返回一个值来确定成功
我个人更喜欢选项B.