2013-02-11 53 views
-1

我從mysqldatabase中拾取數據並在C#應用程序中引發變量。我正在使用此代碼:爲此操作創建一個類

int forcatime; 
string comandomedia = "select avg(forca_jogador) from jogadores where nome_time = " + time; 

ocon.ConnectionString = con; 
MySqlCommand media = new MySqlCommand(comandomedia, ocon); 
ocon.Open(); 
forcatime = Convert.ToInt32(media.ExecuteScalar()); 
ocon.Close(); 

這樣做後,我將「forcatime」ToString轉換並將其放入MessageBox中。

我想知道是否有辦法爲這個操作創建一個類,因爲每次我必須這樣做,我一次又一次地寫所有的代碼。由於

+0

把它放在一個方法中,把這個方法放在類中?你有沒有嘗試過任何東西? – DGibbs 2013-02-11 14:23:46

+0

爲您的'jogadores'表和您需要的所有方法(如GetForcaTime)創建一個類,但不要創建一個封裝數據庫功能的類。 http://stackoverflow.com/questions/9705637/executereader-requires-an-open-and-available-connection-the-connections-curren/9707060#9707060 – 2013-02-11 14:25:47

回答

1

喜歡的東西...

int result = new DataLayerHelper().RunQuery(); 
MessageBox.Show(result.ToString()); 

[...]

public class DataLayerHelper 
{ 
    public DataLayerHelper() { } 

    public int RunQuery() 
    { 
     int forcatime; 
     string comandomedia = "select avg(forca_jogador) from jogadores where nome_time = " + time; 
     ocon.ConnectionString = con; 
     MySqlCommand media = new MySqlCommand(comandomedia, ocon); 
     ocon.Open();//consider a using statement 
     forcatime = Convert.ToInt32(media.ExecuteScalar()); 
     ocon.Close(); 

     return forcatime; 
    } 
} 
+0

我會說,也許想想OOP在這裏,而不是一個平面的例子如何在課堂上運行一種方法。 – TheKingDave 2013-02-11 14:28:28

0

你不寫此一類,你寫這樣的功能。

public void Foo(params) 
{ 
    //your code here 
} 

你要做的是將它放在一個「實用程序」類中,該類由具有私有構造函數的靜態函數組成。

實施例:

public class DBUtilities 
{ 
     private DBUtilities(){} 
     public static void Foo(params) 
     { 
     int forcatime; 
    string comandomedia = "select avg(forca_jogador) from jogadores where nome_time = " + time; 
    ocon.ConnectionString = con; 
    MySqlCommand media = new MySqlCommand(comandomedia, ocon); 
    ocon.Open(); 
    forcatime = Convert.ToInt32(media.ExecuteScalar()); 
    ocon.Close(); 
     } 
} 
0

類應與他們打算記來封裝邏輯來創建。

你需要說什麼這是做你爲什麼將其擲到屏幕...等

另外,你在你的代碼不同的地方時是來自有可能的SQL注入。

P.S.如果沒有意義,我不能在這裏輸入快速,因爲有些人很抱歉。