1

さて、私はこれに何日も取り組んできました、そして私はそれを終えることに近づいていることを知っています、しかし私はエラーを受け取り続けます。私が得た最初のエラーは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");
}

わかりました、エラーが発生しました

無効なキャスト例外のタイプ「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);
    }
}

私は試してみてキャッチを動かしましたが、エラーが発生し続けます。保存ボタンでやりたいのは、現在内部にある値を切り捨てずに、選択したレコードをtxtFilePAthで指定されたファイルに書き込むことだけです。しかし、ボックスに何かを入れずにボタンを押すと、メッセージが表示されるようにしたいと思います。そうです、ユーザーがファイルを保存できるため、特定のパスがないことはわかっています。彼らも望むところならどこでも。誰かが私が間違っていることを理解するのを手伝ってくれませんか。

4

1 に答える 1

4

employeeList.Itemsリストがバインドされているデータ項目のリストを返します。これは文字列のリストではなく、Employeeオブジェクトのリストです(これは、アプリケーションのどこかで定義したクラスのようです)。したがって、機能する構文は次のとおりです。

foreach (Employee employee in employeeList.Items)
{
    // do something with the employee object
}
于 2012-04-26T14:40:09.923 に答える