[英]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.