You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ACCDB数据库更新GUID列:C#中SQL语句的正确语法问询

Access数据库更新复制ID(GUID)列的正确SQL语法

在Access的SQL语句中,更新复制ID类型的列时,不需要给GUID值加单引号,直接用大括号{}包裹即可。你当前语句的问题就在于给GUID加了单引号,导致语法错误。

正确的SQL示例

UPDATE Locations 
SET LocationGUI = {0027033a-7d16-485b-a76d-1c767c3ef030}, 
    Facility = '', 
    Address1 = '', Address2 = '', 
    City = '', State = '', Zip = '', 
    Telephone = '', Fax = '', Website = '' 
WHERE LocationID = 1;

更推荐的C#参数化写法

如果用C#代码执行更新,建议用参数化查询,既避免语法错误,也防止SQL注入:

string updateSql = @"
UPDATE Locations 
SET LocationGUI = @LocationGuid, 
    Facility = '', 
    Address1 = '', Address2 = '', 
    City = '', State = '', Zip = '', 
    Telephone = '', Fax = '', Website = '' 
WHERE LocationID = @LocationId;
";

using (OleDbConnection conn = new OleDbConnection("你的Access连接字符串"))
{
    conn.Open();
    using (OleDbCommand cmd = new OleDbCommand(updateSql, conn))
    {
        // 传递GUID参数,无需手动处理格式
        cmd.Parameters.AddWithValue("@LocationGuid", Guid.Parse("0027033a-7d16-485b-a76d-1c767c3ef030"));
        cmd.Parameters.AddWithValue("@LocationId", 1);
        cmd.ExecuteNonQuery();
    }
}

参数化查询会自动处理Access对GUID类型的格式要求,不用手动拼接大括号或引号,更可靠。

内容的提问来源于stack exchange,提问作者Bernie Hunt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:50:26