簡體   English   中英

我不斷收到錯誤 System.Data.SqlClient.SqlException: '#' 附近的語法不正確。

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM