为此操作创建一个类

时间:2013-02-11 14:21:08

标签: c# class executescalar

我从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中。

我想知道是否有办法为此操作创建一个类,因为每次我必须这样做时,我会一次又一次地编写所有代码。感谢

3 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分: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();
       }  
}  

答案 2 :(得分:0)

应该使用他们打算封装的逻辑来创建类。

你需要说出这是为什么你把它扔到屏幕上......等等。

另外,根据时间的来源,您的代码中可能会有SQL注入。

P.S。我不能打字快,因为有些人对不起,如果这没有意义。