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' –