2017-01-24 239 views
0

我想創建一個處理我所有的數據庫-的東西,所以我開始用這個類:C#創建一個數據庫類

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是動態的。我想插入字符串,日期和整數..什麼是最好的解決方案來創建一個插入,更新和選擇功能,可以從任何地方使用?

+0

有什麼理由要重新創建而不是使用現有的.netClass或框架? – MrVoid

+0

我更喜歡現有的.net類,但我找不到任何鏈接? –

+0

DBContext類支持EF6中的mysql,看看這個https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html,將是更簡單的方法,我認爲 – MrVoid

回答

1

你有兩種選擇。

a)爲方法每一種可能的選擇/插入/更新/ Database類

B)內刪除請通用選擇和插入/更新/刪除方法,該方法需要一個SQL查詢(字符串)和SqlParameter的數組/列表,然後將此數據傳遞給功能,從另一個類

的選擇方法應該返回一個DataTable和插入/更新/刪除方法可以返回一個值來確定成功

我個人更喜歡選項B.

+0

聽起來很棒感謝您的回答! –