在C#中未处理InvalidCastException

时间:2012-04-26 14:37:26

标签: c#

好的,我已经在这方面工作了很多天,我知道我已经接近完成它,但我一直在收到错误。我收到的第一个错误是ArgumentException was unhandled,其中包含:

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");
}

好的,我现在收到错误

  

无效的投射异常无法投射类型的对象   &#39; WindowsFormsApplication2.Employee&#39;输入&#39; System.String&#39;。

在这一行:

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);
    }
}

我已经完成了移动尝试并抓住了我不断收到错误。我想用保存按钮做的就是将所选记录写入txtFilePAth中指定的文件,而不截断当前内部的值。但是我希望能够有一条消息,如果你按下按钮而没有弹出的那个框中的东西就会出现。是的我知道没有一个特定的路径是由于用户能够保存文件他们想要的地方。有人可以帮我理解我做错了什么。

1 个答案:

答案 0 :(得分:4)

employeeList.Items返回列表绑定的数据项列表。这不是字符串列表,而是Employee对象列表(这似乎是您在应用程序中定义的类)。所以可行的语法是:

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