已解决 - 意外擦除了实际的数据文件,但是除非您重新打开,否则ide不会更新该文件,因此我认为数据仍在那里。
我正在使用C#中的一个项目来读取虚假库存,然后在另一个类中使用该库存进行交易。我知道目前代码非常混乱,我只是想弄明白一件事。
此处的代码将在我的文件“Inventory.in”中读取,检查文件是否存在(它是否存在),然后将我的streamreader和readline启动为字符串。
private void btnFill_Click(object sender, EventArgs e)
{
string strInputLine;
string inFile = "Inventory.in";
StreamReader iSR;
InvRec currInvent;
if (File.Exists(inFile))
{
iSR = new StreamReader(inFile);
strInputLine = iSR.ReadLine();
while (strInputLine != null)
{
所有这些都不存在,但重点是
"strInputLine = iSR.ReadLine();"
确实从该文件中给出了正确的值。
现在转到我的问题,另一个按钮的第二个代码块如下:
private void btnProcess_Click(object sender, EventArgs e)
{
string strInputVal;
string inFileName = "Transactions.in";
TransRec currTrans;
StreamReader iSR2;
transListClass transactionList = new transListClass();
InvRec inventItem = inventoryList.Retrieve();
if (File.Exists(inFileName))
{
iSR2 = new StreamReader(inFileName);
strInputVal = iSR2.ReadLine();
while (strInputVal != null)
{
当我尝试将我的ReadLine()导入iSR2时,我的问题就在于此。它给了我null而不是我应该得到的文件的值。一切都是一样的,它只是拒绝给我正确的价值。我正在跟踪Visual Studio 2010中的调试器,所以我知道该文件已找到且存在,我看到它被打开,只是一个空值而不是我需要的字符串。
提前感谢任何人,我很感激。 - 安东尼
编辑: 第二个代码块应该从“Transactions.in”读取,而不是从“Inventory.in”中读取的第一个代码
重要编辑: 我注意到当我在进程按钮的第二个代码块中将“Transactions.in”更改为“Inventory.in”时,它会从Inventory.in中读取值并给出一个与Transactions.in中的null不同的正确字符串。找到该文件,它只是一个名为Transactions.in的文本文件,由我的老师提供,其他人都没有问题。