【发布时间】:2020-07-28 00:51:00
【问题描述】:
我有一个从 SQL Server 数据库填充的DataGrid,我有一个鼠标双击事件,它打开一个新窗口并填充Textboxes 和ComboBoxes。
我有一个小问题。如果所选行的名为“RTTYPE”的列是空白的,我将得到一个System.FormatException: Input string was not in a correct format,然后ComboBox 显示列表中的第一个值项。
如果所选行为空白,我希望 ComboBox 保持空白。请帮忙!
private void dtGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
// User double clicks on DataGrid Row
// Open new Window
// Populate selected textboxes with selected datarow
DataGrid gd = (DataGrid)sender;
DataRowView row_selected = gd.SelectedItem as DataRowView;
var windowToOpen = new Window1();
if (gd != null)
{
// Textboxes
windowToOpen.txt_RowRecrd.Text = row_selected["DSP_ID"].ToString();
windowToOpen.txt_acctnumber.Text = row_selected["ACCOUNT"].ToString();
windowToOpen.txt_analyst.Text = row_selected["TX_EMPLOYEE"].ToString();
windowToOpen.txt_custname.Text = row_selected["CUST_NAME"].ToString();
windowToOpen.txt_address.Text = row_selected["PREM_ADDR"].ToString();
windowToOpen.txt_Status.Text = row_selected["Status"].ToString();
windowToOpen.txt_opened.Text = row_selected["OPENED"].ToString();
windowToOpen.txt_deadline.Text = row_selected["DEADLINE"].ToString();
windowToOpen.txt_DaysOpen.Text = row_selected["DaysOpen"].ToString();
windowToOpen.txt_DateResolved.Text = row_selected["DATERSLVD"].ToString();
windowToOpen.txt_revcls.Text = row_selected["RateType"].ToString();
windowToOpen.txt_WFMissuedBy.Text = row_selected["NM_USER"].ToString();
windowToOpen.txt_firstreview.Text = row_selected["FR_DT_FIRSTREV"].ToString();
windowToOpen.txt_Latestupdate.Text = row_selected["FR_TS_LATESTUPD"].ToString();
windowToOpen.txt_reviewNotes.Text = row_selected["FR_CMMNT"].ToString();
windowToOpen.txt_ResolutionNotes.Text = row_selected["COMMENT"].ToString();
// ComboBoxes
SqlConnection connection = new SqlConnection("Data Source=WINDOWS-B1AT5HC\\SQLEXPRESS;Initial Catalog=CustomerRelations;Integrated Security=True;");
try
{
SqlDataAdapter Status_data = new SqlDataAdapter("SELECT RPTID, ReportType FROM [hb_RptType]", connection);
DataSet ds = new DataSet();
Status_data.Fill(ds, "t");
windowToOpen.cmb_UtilityRptTyp.ItemsSource = ds.Tables["t"].DefaultView;
windowToOpen.cmb_UtilityRptTyp.DisplayMemberPath = "ReportType";
windowToOpen.cmb_UtilityRptTyp.SelectedValuePath = "RPTID";
windowToOpen.cmb_UtilityRptTyp.SelectedValue = row_selected["RPTTYPE"].ToString();
// windowToOpen.cmb_UtilityRptTyp.SelectedIndex = 3; // Convert.ToInt32( row_selected["RPTTYPE"].ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
windowToOpen.Show();
}
else
{
return;
}
}
【问题讨论】:
标签: c# sql sql-server combobox datagrid