Если заявление, относящееся к критериям базы данных - PullRequest
0 голосов
/ 13 октября 2011

Я новичок в этом сообществе.Я также немного новичок в программировании, и это нубский вопрос.Если у меня плохая формулировка или у любого участника есть какой-либо совет дать новичку, пожалуйста!В любом случае, здесь я иду!

Следующий метод (хотя и очевидный) захватывает файл и вставляет его в таблицу базы данных (KC_Reply_Shipped) (или отменяет в другую таблицу), также очевидный.Файл выглядит примерно так:

ГГГГ847583 бла-бла-бла-бла-бла-ха-ха-ха-ха бла-бла

XXX8343445 "" ""

XXX8976556 "" ""

Однако яНЕ хочу вставить ГГГГ.Я не могу помочь, что файл имеет это, потому что это вне моего контроля.Но я действительно хочу XXX.Иногда файл будет иметь YYYY, а иногда - нет.

хотя это кажется таким легким, я, будучи новичком, запутался в формулировке, потому что у меня уже есть выражение while, а метод логический.К вашему сведению, это только для развлечения и экспериментов.Ничего серьезного.Любая помощь или ответ будет принята с благодарностью.Спасибо ^ 2 заранее!

    private bool InsertIntoDatabase(FileInfo file)
    {
        string table = "KC_Reply_Shipped";
        string line;
        StreamReader reader = new StreamReader(file.FullName);
        try
        {
            Database db = new Database();
            ShippedOrders = new List<string[]>();
            CancelledOrders = new List<string[]>();
            while ((line = reader.ReadLine()) != null)
            {
                string[] temp = GetFileDataForInsert(line);
                temp[temp.Length - 1] = file.Name.Substring(0, file.Name.Length - 4);
                if (temp[1] == "30")
                {
                    table = "KC_Reply_Cancelled";
                    CancelledOrders.Add(temp);
                    db.UpdateOrderToCancelled(temp[0]);
                }
                else
                {
                    ShippedOrders.Add(temp);
                    db.UpdateOrderToShipped(temp[0]);
                    db.UpdateOrderTrackingNumber(temp[10]);
                    db.UpdateOrderNotes(temp);
                }
                db.BatchInsert(table, temp);
            }
        }
        catch (Exception e)
        {
            errorMsg = e.Message;
            return false;
        }
        finally
        {
            reader.Close();
        }
        return true;
    }

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Вы можете попробовать что-то вроде следующего, чтобы проверить начало строки и принять решение оттуда:

if(!line.StartsWith("YYYY"))
{
     //....do stuff here
}
1 голос
/ 13 октября 2011

Вы можете пропустить строки, начинающиеся с YYYY, следующим образом:

...

while ((line = reader.ReadLine()) != null)
{
    if (line.StartsWith("YYYY"))
        continue;
    else {
        // your code
    }
}

...

Если вы хотите игнорировать файл в случае, если есть «ГГГГ», то вы можете сделать это:

...

while ((line = reader.ReadLine()) != null)
{
    if (line.StartsWith("YYYY"))
        return true; // or false, whatever you method should return in this case
    else {
        // your code
    }
}

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...