[英]Keep getting System.Data.SqlClient.SqlException: 'Incorrect syntax near ';'.'
[英]I keep getting the error System.Data.SqlClient.SqlException: 'Incorrect syntax near '#'.'
嗨,请帮助我不断收到错误 System.Data.SqlClient.SqlException: '#' 附近的语法不正确。 下面是代码谢谢
private void AddBirthDayToCal(int startDayAtFlNumber)
{
var startDate = new DateTime(currentDate.Year, currentDate.Month, 1);
var endDate = startDate.AddMonths(1).AddDays(-1);
SqlConnection FamilyMembersConnection;
FamilyMembersConnection = new SqlConnection("Data Source =.\\SQLEXPRESS; AttachDbFilename = " + Application.StartupPath + "\\MyFamily.mdf; Integrated Security = True; Connect Timeout = 30; User Instance = True");
FamilyMembersConnection.Open();
FamilyMembersCommand = new SqlCommand($"select * from FamilyMembers where Birthday between #{startDate.ToShortDateString()}# and #{endDate.ToShortDateString()}#", FamilyMembersConnection);
FamilyMembersAdapter = new SqlDataAdapter();
FamilyMembersAdapter.SelectCommand = FamilyMembersCommand;
FamilyMembersTable = new DataTable();
FamilyMembersAdapter.Fill(FamilyMembersTable);
foreach (DataRow row in FamilyMembersTable.Rows)
{
var BirthDay = DateTime.Parse(Conversions.ToString(row["BirthDay"]));
var link = new LinkLabel();
link.Tag = row["FamilyMembersID"];
link.Name = $"link{row["FamilyMembersID"]}";
link.Text = Conversions.ToString(row["First_Name"]);
listFlDay[BirthDay.Day - 1 + (startDayAtFlNumber - 1)].Controls.Add(link);
}
}
这是因为您在查询中放入了“#”
FamilyMembersCommand = new SqlCommand($"select * from FamilyMembers where Birthday between #{startDate.ToShortDateString()}# and #{endDate.ToShortDateString()}#", FamilyMembersConnection);
改成这样
FamilyMembersCommand = new SqlCommand($"select * from FamilyMembers where Birthday between '{startDate.ToShortDateString()}' and '{endDate.ToShortDateString()}'", FamilyMembersConnection);
sql 中的# 允许您在当前会话中引用临时对象或过程。 话虽如此,您不应该在查询中需要任何 #。 我假设你想用单引号替换那些,因为你正在做的字符串插值应该解析你传入的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.