C# function best practice

In GetLaborDetails you are declaring dt as a new DataTable, not updating dt (which you must have as a class-level member variable, that you are accessing in the button click?).

If you want to update member variable dt instead, the code would look like this:

private void GetLaborDetails(string JN, string PN, string OC)
{
	DynamicQueryAdapter gld = new DynamicQueryAdapter(oTrans);
	gld.BOConnect();
	QueryExecutionDataSet qeds = gld.GetQueryExecutionParametersByID("ClockOutBarcode");
	qeds.ExecutionParameter.Clear();
	qeds.ExecutionParameter.AddExecutionParameterRow("JobNum",JN,"nvarchar", false, Guid.NewGuid(),"A");
	qeds.ExecutionParameter.AddExecutionParameterRow("PartNum",PN,"nvarchar",false, Guid.NewGuid(),"A");
	qeds.ExecutionParameter.AddExecutionParameterRow("OpCode",OC,"nvarchar",false, Guid.NewGuid(),"A");
	gld.ExecuteByID("ClockOutBarcode");
	dt = gld.QueryResults.Tables["Results"];
}

You could have GetLaborDetails return the datatable:

private DataTable GetLaborDetails(string JN, string PN, string OC)
{
	DynamicQueryAdapter gld = new DynamicQueryAdapter(oTrans);
	gld.BOConnect();
	QueryExecutionDataSet qeds = gld.GetQueryExecutionParametersByID("ClockOutBarcode");
	qeds.ExecutionParameter.Clear();
	qeds.ExecutionParameter.AddExecutionParameterRow("JobNum",JN,"nvarchar", false, Guid.NewGuid(),"A");
	qeds.ExecutionParameter.AddExecutionParameterRow("PartNum",PN,"nvarchar",false, Guid.NewGuid(),"A");
	qeds.ExecutionParameter.AddExecutionParameterRow("OpCode",OC,"nvarchar",false, Guid.NewGuid(),"A");
	gld.ExecuteByID("ClockOutBarcode");
	return gld.QueryResults.Tables["Results"];
}

And use it like this:

private void EndWQtyButton_Click(object sender, System.EventArgs args)
{
	// ** Place Event Handling Code Here **
	var dt = GetLaborDetails(JobBox.Text,PartNumBox.Text,OpBox.Text);
	MessageBox.Show("Test 0 button- JobNum:"+ JobBox.Text+" PartNum: "+PartNumBox.Text+" OpCode: "+ OpBox.Value );
	MessageBox.Show(dt.ToString());
}
1 Like