Это мой первый изумительный опыт. Я прочитал предложения здесь, но ни одна из них, похоже, не исправила мою проблему.
Must declare the scalar variable "@tranAmount".
Некоторые предложили, если рассматриваемая переменная равна нулю. но я проверил, это не нуль.
Я надеюсь, что кто-то может помочь указать на то, что я делаю неправильно.
public void RunEndOfDays()
{
try
{
IEnumerable<Loan> loans = null;
var currentMonth = DateTime.Now.Month; //current month
var currentYear = DateTime.Now.Year;
using (var conn = new SqlConnection(ConnectionString))
{
conn.Open();
loans = conn.Query<Loan>("Select * from Loan");
foreach (var loan in loans)
{
//now calculate the interest for this item
var interestInPercentage = loan.InterestRate / 100;
var interestPerDay = interestInPercentage / 365; //saved
var interestAmountPerDay = loan.AmountWrittenOff * interestPerDay;
var tranAmount = loan.AmountWrittenOff + interestAmountPerDay;//saved
var tranDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.FFF");
var loanAccountNo = loan.LoanAccountNo;
var originalLoanAmount = loan.OriginalLoanAmount;
var narration = loan.WrittenOffReason;
var addDailyInterest = @"INSERT INTO DailyInterest(LoanAccountNo,
TranAmount,
InterestRatePerDay,
interestPerDay,
AmountPerDay,
OriginalLoanAmount,
Narration,
TranDate) VALUES(@loanAccountNo,
@tranAmount,
@interestInPercentage
@interestPerDay,
@interestAmountPerDay,
@originalLoanAmount,
@narration,
@tranDate)";
//conn.Open();
conn.Execute(addDailyInterest, loans);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.ToString());
}
}
Спасибо