private void DisplayJobLinker()
{
try
{
/* Define dataset for Transaction Types */
TrxTypeDataSet = new System.Data.DataSet();
TrxTypeDataSet.CaseSensitive = false;
TrxTypeDataCommand = new System.Data.SqlClient.SqlCommand();
TrxTypeDataCommand.Connection = DataConnection;
TrxTypeDataCommand.CommandText = "select LTRIM(DISTTRXTYPE) AS DISTTRXTYPE from JOB_TRX_TYPES where formtype='COST' ORDER BY DISTTRXTYPE";
TrxTypeDataAdapter = new System.Data.SqlClient.SqlDataAdapter();
TrxTypeDataAdapter.SelectCommand = TrxTypeDataCommand;
TrxTypeDataAdapter.Fill(TrxTypeDataSet);
/* Define dataset for GL distribution amounts */
DataDataSet = new System.Data.DataSet();
DataDataSet.CaseSensitive = false;
DataCommand = new System.Data.SqlClient.SqlCommand();
DataCommand.Connection = DataConnection;
DataCommand.CommandText = "select JOBNUMBER,ACTNUMST,DEBITAMT,CRDTAMNT,DISTTYPE,DISTTRXTYPE,DISTREF,BCHSOURC,TRANSNMBR,TRXTYPE,DSTSQNUM,CNTRLTYP,APTVCHNM,SPCLDIST,COMPANYID " +
"from JOB_LINKER WHERE COMPANYID = '" + CompanyID + "' AND TRANSNMBR ='" + VoucherNumber + "' AND MASTERTYPE = '" + MasterType + "' ORDER BY DSTSQNUM";
DataDataAdapter = new System.Data.SqlClient.SqlDataAdapter();
DataDataAdapter.SelectCommand = DataCommand;
_commandBuilder = new SqlCommandBuilder(DataDataAdapter);
DataDataAdapter.Fill(DataDataSet);
if (DataDataSet.Tables[0].Rows.Count == 0)
{
MessageBox.Show("No distributions found for this transaction in Job Linker");
/* Dispose of the connection */
GPConnObj = null;
/* Shutdown the connection */
resp = GPConnection.Shutdown();
DataConnection.Close();
this.Hide();
this.Dispose();
}
dgvViewJobLinker.DataError += new DataGridViewDataErrorEventHandler(dgvJobLinker_DataError);
dgvViewJobLinker.RowHeadersVisible = false;
dgvViewJobLinker.DataSource = DataDataSet.Tables[0].DefaultView;
dgvViewJobLinker.AutoGenerateColumns = true;
dgvViewJobLinker.DefaultCellStyle.NullValue = ' ';
dgvViewJobLinker.AllowUserToAddRows = false;
DataGridViewButtonColumn colButton = new DataGridViewButtonColumn();
colButton.HeaderText = "";
colButton.Name = "btnLookupJob";
colButton.Text = "Lookup Job";
colButton.UseColumnTextForButtonValue = true;
dgvViewJobLinker.Columns.Insert(0, colButton);
dgvViewJobLinker.Columns[0].Width = 80;
dgvViewJobLinker.Columns[1].Width = 100;
dgvViewJobLinker.Columns[1].ReadOnly = false;
dgvViewJobLinker.Columns[1].HeaderText = "Job Number";
dgvViewJobLinker.Columns[2].Width = 100;
dgvViewJobLinker.Columns[2].ReadOnly = true;
dgvViewJobLinker.Columns[2].HeaderText = "GL Account";
dgvViewJobLinker.Columns[3].Width = 84;
dgvViewJobLinker.Columns[3].ReadOnly = true;
dgvViewJobLinker.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
dgvViewJobLinker.Columns[3].DefaultCellStyle.Format = "c";
dgvViewJobLinker.Columns[3].HeaderText = "Debit Amount";
dgvViewJobLinker.Columns[4].Width = 84;
dgvViewJobLinker.Columns[4].ReadOnly = true;
dgvViewJobLinker.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
dgvViewJobLinker.Columns[4].DefaultCellStyle.Format = "c";
dgvViewJobLinker.Columns[4].HeaderText = "Credit Amount";
dgvViewJobLinker.Columns[5].Width = 100;
dgvViewJobLinker.Columns[5].ReadOnly = true;
dgvViewJobLinker.Columns[5].HeaderText = "Dist Type";
/* Add a new Column (ComboBox) for the Transaction Type column */
DataGridViewComboBoxColumn colType = new DataGridViewComboBoxColumn();
colType.DefaultCellStyle.NullValue = " ";
colType.DataSource = TrxTypeDataSet.Tables[0];
colType.ValueMember = DataDataSet.Tables[0].Columns[5].ColumnName.ToString();
colType.DisplayMember = colType.ValueMember;
colType.HeaderText = "Transaction Type";
colType.DropDownWidth = 90;
colType.Width = 90;
colType.MaxDropDownItems = 7;
colType.DataPropertyName = DataDataSet.Tables[0].Columns[5].ColumnName.ToString();
colType.Name = DataDataSet.Tables[0].Columns[5].ColumnName.ToString();
dgvViewJobLinker.Columns.RemoveAt(6);
dgvViewJobLinker.Columns.Insert(6, colType);
dgvViewJobLinker.Columns[7].Width = 292;
dgvViewJobLinker.Columns[7].ReadOnly = false;
dgvViewJobLinker.Columns[7].HeaderText = "Dist Reference";
dgvViewJobLinker.Columns[8].Visible = false;
dgvViewJobLinker.Columns[9].Visible = false;
dgvViewJobLinker.Columns[10].Visible = false;
dgvViewJobLinker.Columns[11].Visible = false;
dgvViewJobLinker.Columns[12].Visible = false;
dgvViewJobLinker.Columns[13].Visible = false;
dgvViewJobLinker.Columns[14].Visible = false;
dgvViewJobLinker.Columns[15].Visible = false;
dgvViewJobLinker.EditMode = DataGridViewEditMode.EditOnEnter;
dgvViewJobLinker.Focus();
}
catch (Exception ex)
{
string eMsg = "004E: ERROR: " + ex.Message;
if (stackTraceWanted) eMsg += "\n" + ex.StackTrace;
MessageBox.Show(eMsg);
You should wrap the call that tries to create and fill the dataset within a try-catch block and then add code in the catch section to either close the program down cleany, or clean up and return to a starting point that the user can perform actions.