2012-04-26 3 views
1

Хорошо, я работал над этим в течение многих дней, и я знаю, что приближаюсь к его завершению, но я продолжаю получать ошибки. Первая ошибка я был ArgumentException was unhandled, который был на этом:InvalidCastException не был обработан в C#

else 
{ 
    using (StreamWriter sw = File.AppendText(path))<--This is where is says 
    Argument exception was unhandled.    
    {  
     foreach (var item in employeeList.Items) 
      sw.WriteLine(item.ToString()); 
    } 

нормально, так что я установил его с этим:

try 
{  
    StreamWriter sw = File.AppendText(path); 
    foreach (var item in employeeList.Items) 
     sw.WriteLine(item.ToString()); 
} 
catch 
{ 
    MessageBox.Show("Please enter something in"); 
} 

Хорошо, теперь я получаю ошибку

из утратившими Исключение Cast Невозможно передать объект типа «WindowsFormsApplication2.Employee» для ввода «System.String».

На этой линии:

string path = txtFilePath.Text;  

if (File.Exists(path)) 
{ 
    using (StreamWriter sw = File.CreateText(path)) 
    { 
     foreach (string line in employeeList.Items)<-- Right here at the string line 
      sw.WriteLine(line); 
    } 
} 

Я сделал переместил попробовать и поймать вокруг и я получаю ошибки. Все, что я хочу сделать с кнопкой save, записывает выбранную запись в файл, указанный в txtFilePAth, без сокращения значений, находящихся внутри. Но я хочу иметь сообщение, которое встречается, если вы нажимаете кнопку, не имея чего-то в этом поле, которое оно всплывает. И да, я знаю, что нет определенного пути, из-за которого пользователь может сохранить файл где бы они ни захотели. Может кто-то, пожалуйста, помогите мне понять, что я делаю неправильно.

+0

Возможно, вам не стоит пытаться исправить свою проблему, просто похлопывая пополам. Попытайтесь/поймайте повсюду. Для вас было бы более целесообразно выполнить 'foreach (Employee e in employeeList.Items) {...}', а затем извлечь данные, которые вы хотите записать в файл. – Thomas

ответ

4

employeeList.Items возвращает список элементов данных, к которым привязан список. Это не список строк, а список объектов Employee (это, кажется, класс, который вы определили где-то в своем приложении). Таким образом, синтаксис, который будет работать, следующий:

foreach (Employee employee in employeeList.Items) 
{ 
    // do something with the employee object 
} 
+0

Спасибо, мой разум просто путается с этим проектом. – shan

Смежные вопросы