繁体   English   中英

更新 SQL 中的主键值

[英]Updating primary key value in SQL

我正在创建一个表单,用其中写入的内容更新 SQL 数据库。 ClientCode 是一个主键。 我的更新查询如下:

string query = $@"UPDATE {clientTableName}
                                SET ClientCode = @clientCode,
                                    CompanyName = @companyName,
                                    Address1 = @address1,
                                    Address2 = @address2,
                                    City = @city,
                                    Province = @province,
                                    PostalCode = @postalCode,
                                    YTDSales = @ytdSales,
                                    CreditHold = @creditHold,
                                    Notes = @notes
                                WHERE ClientCode = @clientCode";

这个查询的问题是它会在 where 原因中选择新的 clientCode,这意味着查询将无法选择正确的主键。

例如,如果我键入“BOTTN”,则查询将在 where 原因中查找“BOTTN”而不是“BOTTM”。

我该如何解决这个问题?

在此处输入图片说明

您需要区分旧的 clientCode 和新的 clientCode。 WHERE子句需要包含旧的 clientCode 以定位数据库中的现有行。 然后您可以更新该行,包括新 clientCode 的值。

string query = $@"UPDATE {clientTableName}
                            SET ClientCode = @newClientCode,     -- NEW
                                CompanyName = @companyName,
                                Address1 = @address1,
                                Address2 = @address2,
                                City = @city,
                                Province = @province,
                                PostalCode = @postalCode,
                                YTDSales = @ytdSales,
                                CreditHold = @creditHold,
                                Notes = @notes
                            WHERE ClientCode = @oldClientCode";  -- OLD

EditDialog的文本框中获取新的客户端代码,并在从数据库中检索行时将旧的客户端代码保存为成员变量或其他内容,以便在EditDialog显示各个字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM