2013-02-11 54 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.如果没有意义,我不能在这里输入快速,因为有些人很抱歉。