C# 必须声明标量变量-dapper和asp.net核心
这是我第一次衣冠楚楚的经历。我在这里读过一些建议,但似乎没有一个能解决我的问题C# 必须声明标量变量-dapper和asp.net核心,c#,asp.net-core,dapper,C#,Asp.net Core,Dapper,这是我第一次衣冠楚楚的经历。我在这里读过一些建议,但似乎没有一个能解决我的问题 Must declare the scalar variable "@tranAmount". 一些人建议如果所讨论的变量为空。但是我已经检查过了,它不是空的 我希望有人能帮我指出我做错了什么 public void RunEndOfDays() { try { IEnumerable<Loan> loans
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());
}
}
public void RunEndOfDays()
{
尝试
{
IEnumerable loans=null;
var currentmount=DateTime.Now.Month;//当前月份
var currentYear=DateTime.Now.Year;
使用(var conn=newsqlconnection(ConnectionString))
{
conn.Open();
贷款=conn.Query(“从贷款中选择*);
foreach(贷款中的var贷款)
{
//现在计算这个项目的利息
var利息百分比=贷款利率/100;
var interestPerDay=interestInPercentage/365;//已保存
var interestAmountPerDay=贷款金额减记*利息日;
var tranmount=loan.amountwritenoff+interestAmountPerDay;//已保存
var-tranDate=DateTime.Now.ToString(“yyyy-MM-dd-HH:MM:ss.FFF”);
var loanAccountNo=loan.loanAccountNo;
var originalloanmount=贷款。originalloanmount;
var旁白=贷款。冲销原因;
var addDailyInterest=@“插入DailyInterest(LoanAccountNo,
金额,
利息日,
兴趣日,
每天的数量,
原汁原味,
叙述,
TranDate)值(@loanAccountNo,
@金额,
@利息百分比
@兴趣日,
@每日利息数,
@原汁原味,
@叙述,
@"日期";;
//conn.Open();
控制执行(增加每日利息、贷款);
}
}
}
捕获(例外情况除外)
{
Console.WriteLine(“错误:+ex.ToString());
}
}
谢谢您的
贷款
类中不存在属性transamount
(您正在将其传递到插入查询中)
conn.Execute(添加每日利息、贷款)代码>
这实际上会将您刚才查询的列表传递回insert查询,从而导致您看到的异常
您应该创建一个与@params匹配的新匿名对象,如下所示:
conn.Execute(addDailyInterest,
新{
loanAccountNo,
金额,
利息百分比,
等
});代码>