2014-02-19 7 views
0

Я добавил PadLeft(8,'0') в свой код, чтобы убедиться, что все учетные записи, вставленные в таблицу базы данных, имели длину не менее 8 символов. Вот код:Padleft не добавляет ведущие нули

public static string CleanAccount(String strVal) 
{ 
    string cleanValue; 
    string paddedAccount = strVal.PadLeft(8,'0'); 
    //MessageBox.Show("account: " + paddedAccount); 

    if (paddedAccount == null) 
    { 
     throw new System.ArgumentException("Value cannot be null", "original"); 
    } 
    else 
    { 
     cleanValue = paddedAccount.Replace(" ", "").Replace("$", "").Replace("-", ""); 
    } 

    return cleanValue; 
} 

Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.get_Item(1); 
Microsoft.Office.Interop.Excel.Range xlRange = worksheet.UsedRange; 

long fullRow = worksheet.Rows.Count; 
long lastRow = worksheet.Cells[fullRow, 1].End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).Row; 
int colCount = xlRange.Columns.Count; 

for (int i = 2; i <= lastRow; i++) 
{ 
    lstTran.Add(new LegalTransactionRec() 
        { 
         AccountNumber = Form1.CleanAccount(xlRange.Cells[i, 1].Value2.ToString()), 
         CostAmount = Form1.CleanAmount(Form1.TryToParse(xlRange.Cells[i, 3].Value2.ToString())), 
         SSN = Form1.CleanString(xlRange.Cells[i, 6].Value2.ToString()), 
         TransactionDate = Form1.ConvertToDateTime(xlRange.Cells[i, 2].Value), 
         Description = Form1.CleanDescription(xlRange.Cells[i, 8].Value2.ToString()), 
         TransactionCode = Form1.CleanTranCode(Form1.CleanExtra(xlRange.Cells[i, 4].Value2.ToString())) 
        } 
       ); 
} 

Когда MessageBox не заметил, что я вижу, что счет действительно получает мягкий, но после того, как он будет добавлен в таблицу базы данных она показывает без ведущего нуля , Любая причина, почему это произойдет?

+0

почему вы использовали 'для (Int J = 1, J <= 1; j ++)'? когда 'j <= 1' делает его бесполезным, и вы не используете' j' внутри цикла. вы можете удалить его. –

+0

@WasifHossain Bandaid на данный момент, мне не нужно знать, в какой позиции находится столбец. – user2405778

+4

Я случайно предполагаю, что это имеет какое-то отношение к типу столбца таблицы или форматированию ячейки электронной таблицы. Невозможно сказать, какой. Таким образом, вы видите число вместо строки, а числа не имеют начальных нулей. –

ответ

0

Ошибка была пользовательской, и я обнаружил ее в то же самое время, когда Ханс Пассант упомянул об этом в комментариях об открытии сообщения.

Вот это изменение в моем коде:

sql.AppendLine(trans.AccountNumber + ","); 

в

sql.AppendLine("'" + trans.AccountNumber + "',"); 
Смежные вопросы