我需要有关如何在代码中的其他区域调用表单加载的建议,以避免过多的复制和粘贴。按下界面中的按钮后,我基本上需要在其他区域加载页面。我需要存在的所有代码,因为你可以看到它有很多次复制和粘贴。
public void FBinterface_Load(object sender, EventArgs e)
{
txtSerial.Focus();
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string SerialQuery = "select SerialNumber from Inventory";
command.CommandText = SerialQuery;
//TO READ DATA
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboSerial.Items.Add(reader["SerialNumber"]);
}
connection.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string PartQuery = "select PartNumber from Inventory";
command.CommandText = PartQuery;
//TO READ DATA
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboPart.Items.Add(reader["PartNumber"]);
}
connection.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string ROnumberQuery = "select ROnumber from Inventory";
command.CommandText = ROnumberQuery;
//TO READ DATA
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboRO.Items.Add(reader["ROnumber"]);
}
connection.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string LocationQuery = "select Location from Inventory";
command.CommandText = LocationQuery;
//TO READ DATA
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboLocation.Items.Add(reader["Location"]);
}
connection.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
答案 0 :(得分:2)
将您的逻辑移至另一个方法并在需要时调用
public void FBinterface_Load(object sender, EventArgs e)
{
MyLogic();
}
private void MyLogic()
{
txtSerial.Focus();
try
{
//removed for brevity
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
现在可以根据需要调用MyLogic
方法。
例如:
public void button1_Click(object sender, EventArgs e)
{
//some code
MyLogic(); //calling the whole logic you want.
//extra code
}
答案 1 :(得分:1)
你有没有尝试过:
FBinterface_Load(this,null);