如果不存在,UPDATE语句错误

本文关键字:语句 错误 UPDATE 如果不 不存在 如果 | 更新日期: 2023-09-27 18:01:57

我有以下代码,用于更新数据库中的记录的POST请求:

    if (Server.HtmlDecode(Request.RequestType).Equals("POST"))
    {
        string connectionstring = @"Data Source=sql2008.net.dcs.hull.ac.uk;Initial Catalog=rde_440881;Integrated Security=True";
        SqlConnection con = new SqlConnection(connectionstring);
        con.Open();
        string FullName = null;
        FullName = Request.QueryString["FullName"];
        string Location = null;
        Location = Request.QueryString["Location"];
        string Username = "default";           
        string TimeOfLastUpdate = "default";
        SqlCommand command = new SqlCommand("IF NOT EXISTS(SELECT (FullName) FROM [Staff] WHERE [FullName] = @FullName" + " INSERT INTO [Staff] ([Username], [FullName], [Location], [TimeOfLastUpdate]) VALUES (@Username, @FullName, @Location, @TimeOfLastUpdate)" + "else" + "UPDATE [Staff] SET [Location] = @Location, [TimeOfLastUpdate] = @TimeOfLastUpdate WHERE [FullName] = @FullName", con);
        command.Parameters.AddWithValue("@UserName", Username);
        command.Parameters.AddWithValue("@FullName", FullName);
        command.Parameters.AddWithValue("@Location", Location);
        command.Parameters.AddWithValue("@TimeOfLastUpdate", TimeOfLastUpdate);
        command.ExecuteNonQuery();
        Response.Write("The location is now" + Location);
        con.Close();
    }

但是当我尝试在浏览器中执行POST请求时,我得到了错误:

"关键字'INSERT'附近语法错误"answers" 'elseUPDATE'附近语法错误。"

如果不存在,UPDATE语句错误

应该是这样的

SqlCommand command = new SqlCommand("IF NOT EXISTS(SELECT (FullName) FROM [Staff] WHERE [FullName] = @FullName) " + 
    "INSERT INTO [Staff] ([Username], [FullName], [Location], [TimeOfLastUpdate]) VALUES (@Username, @FullName, @Location, @TimeOfLastUpdate) " + 
    "else" + 
    " UPDATE [Staff] SET [Location] = @Location, [TimeOfLastUpdate] = @TimeOfLastUpdate WHERE [FullName] = @FullName ", con);

我在EXISTS之后添加了结束括号,并在"else"周围添加了一些间距问题