2014-03-06 111 views
0

完全不熟悉这一点。根据我点击的事件按钮,我需要写入适当的文本文件。但是,输入数据写入相同的文本文件。如何指定写入并保存的适当文本文件。写入文本文件

的编码,从文本文件的名称除了相同的,我目前使用的是:

private void btnItemAdd_Click(object sender, EventArgs e) 
{ 
    string sItem; 
    string sNumber; 

    if (rdoDrinks.Checked == false && rdoConfectionary.Checked == false) 
    { 
     //Message to remind user to select category 
     MessageBox.Show("Please select a category"); 
     txtItem.Focus(); 
    } 
    { 
     { 
      if ((rdoDrinks.Checked == true) && (txtItem.Text != "") && (txtItemNumber.Text == "")) 

       //Message to remind user to enter a number 
       MessageBox.Show("Please input a number"); 
       txtItemNumber.Focus(); 

      if ((txtItem.Text != "") && (txtItemNumber.Text != "")) 
      { 
       //add Item to end of list 
       lstItems.Items.Add(string.Format("{0, -15} {1, -20}", txtItem.Text, txtItemNumber.Text)); 
       txtCount.Text = lstItems.Items.Count.ToString(); 
       //set focus to the text box 
       txtItem.Focus(); 

       StreamWriter sw = File.AppendText("Drinks.txt"); 
       { 
        sItem = txtItem.Text; 
        sw.WriteLine(sItem); 

        sNumber = txtItemNumber.Text; 
        sw.WriteLine(sNumber); 

       } 

       MessageBox.Show("Details have been saved"); 
       txtItem.Clear(); 
       txtItemNumber.Clear(); 

       sw.Close(); 
      } 
      else if ((rdoConfectionary.Checked == true) && (txtItem.Text != "") && (txtItemNumber.Text == "")) 
       //Message to remind user to enter a number 
       MessageBox.Show("Please input a number"); 
       txtItemNumber.Focus(); 

      if ((txtItem.Text != "") && (txtItemNumber.Text != "")) 
      { 
       //add Item to end of list 
       lstItems.Items.Add(string.Format("{0, -15} {1, -20}", txtItem.Text, txtItemNumber.Text)); 
       txtCount.Text = lstItems.Items.Count.ToString(); 
       //set focus to the text box 
       txtItem.Focus(); 

       StreamWriter sw = File.AppendText("Confectionary.txt"); 
       { 
        sItem = txtItem.Text; 
        sw.WriteLine(sItem); 

        sNumber = txtItemNumber.Text; 
        sw.WriteLine(sNumber); 
       } 

       MessageBox.Show("Details have been saved"); 
       txtItem.Clear(); 
       txtItemNumber.Clear(); 

       sw.Close(); 
      } 
     } 
    } 
} 

回答

1

你有几个问题:

  1. 你以后缺少其他第一个if

  2. 以下代码永远无法成为true

两个if声明碰撞(该txtItemNumber.Text比较的问题)。因此,你永远不会写最后Drinks.txt:

if ((rdoDrinks.Checked == true) && (txtItem.Text != "") && (txtItemNumber.Text == "")) 

... 

if ((txtItem.Text != "") && (txtItemNumber.Text != "")) 
+0

谢谢 - 在您的建议后,我确​​实解决了这个问题。有一点,它总是写入Drinks.txt文件而不是Confectionary.txt文件。但是这已经被排序。 – user3387822

+0

@ user3387822:由于您在这里是新手,请不要忘记将答案标记为答案,如果答案足够。请参阅[FAQ#why-vote] –