我创建了 WPF application
以将ComboBox
和Datagrid
与 Excel data
一起使用,但是当我更改时ComboBox
选择中,我将收到以下错误消息-
索引超出数组范围。
下面是引发错误的代码。
private void MyComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
List<string> MyAlbumCategory = new List<string>();
MyAlbumCategory.Add("Album-2019-01");
MyAlbumCategory.Add("Album-2019-02");
MyAlbumCategory.Add("Album-2019-03");
MyAlbumCategory.Add("Album-2019-04");
MyAlbumCategory.Add("Album-2019-05");
MyAlbumCategory.Add("Album-2019-06");
MyAlbumCategory.Add("Album-2019-07");
MyAlbumCategory.Add("Album-2019-08");
MyAlbumCategory.Add("Album-2019-09");
MyAlbumCategory.Add("Album-2019-10");
MyAlbumCategory.Add("Album-2019-11");
MyAlbumCategory.Add("Album-2019-12");
MyComboBox.ItemsSource = MyAlbumCategory;
MyComboBoxSelectionChanged = MyComboBox.SelectedItem as string;
this.Title = MyComboBox.SelectedItem as string;
MyOleDbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=.\\SingerAlbum.xlsx; Extended Properties=\"Excel 12.0 Xml;HDR=YES; \"");
try
{
MyOleDbConnection.Open();
MyOleDbString = "Select * from [Sheet1$] where Album_Name = '" + MyComboBoxSelectionChanged + "'";
MyOleDbCommand = new OleDbCommand(MyOleDbString, MyOleDbConnection);
MyOleDbDataTable = new DataTable();
MyOleDbDataAdapter = new OleDbDataAdapter(MyOleDbCommand);
MyOleDbDataAdapter.FillSchema(MyOleDbDataTable, SchemaType.Source);
MyOleDbDataAdapter.Fill(MyOleDbDataTable);
MyDataGrid1.ItemsSource = MyOleDbDataTable.DefaultView;
MyOleDbConnection.Close();
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
}
private void MyDataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MyDataGrid1_SelectedItem = (e.AddedItems[0] as DataRowView).Row["MV_Name"].ToString();
//MyDataGrid1_SelectedItem = (MyDataGrid1.SelectedItem as DataRowView).Row["MV_Name"].ToString();
}
感谢帮助我解决问题。