public partial class Form1 : Form
{
private void StartApp()
{
LobGamma.LogInPanel.FillComboBox(LogInpanel_ComboBox, LobGamma.Connection.ObtainConnection());
}
}
public class LogInPanel
{
public static void FillComboBox(ComboBox Box, SqlConnection con)
{
Box.Items.Clear();
using (con)
{
SqlCommand com = new SqlCommand("Select Id From UsersTable", con);
con.Open();
using (SqlDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
Box.Items.Add(reader["Id"].ToString());
}
reader.Close();
}
}
con.Close();
}
我想知道如果我要如何使用的方法从另一个类的正确途径。我只需要使用该方法一次。我通过使用静态方法可以接受吗?或者该方法应该是非静态的。从另一个类调用方法的正确方法是什么?
如果方法应该是非静态的,它是最好的自IDisposable来继承,这样我可以在using语句使用类?或者只是创建一个类的实例并等待GC可以接受?
这是不是真的回答你的问题,但我认为你不应该使用'using'上'SqlConnection'已传递给方法的参数。这可能不是一个好主意,因为你正在处理从方法之外给出的实例。这可能会让来电者感到惊讶。考虑将'using'移动到'StartApp'方法或创建'SqlConnection'内部'FillComboBox'。 – wkl
谢谢,很高兴知道。 – Jones
static/instance在这里并不重要。你的代码是OK的,但它仍然混合了GUI和业务逻辑。考虑一种不知道Comoboxes的方法,但返回一个'List' –