Golang新手在第一个API项目中遇到的错误
Golang新手在第一个API项目中遇到的错误 无法将 Information.AccountNumber(类型 uint32)用作字段值中的字符串类型。 这是我的代码中的一个错误…
database.Model(&Information{}).Where("AccountNumber=?", Information.AccountNumber).Updates(Information{AccountBalance: Information.AccountNumber})
上面标记的是出现错误的行。 我应该怎么做来解决这个错误…
5 回复
请问能告诉我导入模型使用的是哪个包吗?
更多关于Golang新手在第一个API项目中遇到的错误的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你能告诉我导入模型使用了哪个包吗?
Bruteecode: 我该如何解决这个错误…
有时将其转换为另一种格式(例如 AccountNumber::integer)会有所帮助。
accNo := strconv.FormatUint(uint64(Information.AccoutNumber), 10)
这会将账号转换为字符串,之后你就可以使用它了。
这个错误是因为你在 Updates 方法中尝试将 uint32 类型的 AccountNumber 赋值给期望字符串类型的字段。根据你的代码逻辑,看起来你可能想更新 AccountBalance 字段,但错误地传递了 AccountNumber。
以下是修正后的代码:
// 正确的更新方式
database.Model(&Information{}).
Where("AccountNumber = ?", Information.AccountNumber).
Updates(Information{AccountBalance: newBalanceValue})
如果你确实想将 AccountNumber 的值赋给 AccountBalance(虽然这看起来不太合理),你需要进行类型转换:
// 如果需要将 uint32 转换为字符串
database.Model(&Information{}).
Where("AccountNumber = ?", Information.AccountNumber).
Updates(Information{AccountBalance: strconv.FormatUint(uint64(Information.AccountNumber), 10)})
// 或者如果 AccountBalance 也是 uint32 类型
database.Model(&Information{}).
Where("AccountNumber = ?", Information.AccountNumber).
Updates(Information{AccountBalance: Information.AccountNumber})
请检查你的 Information 结构体定义,确保字段类型匹配:
type Information struct {
AccountNumber uint32 `gorm:"column:account_number"`
AccountBalance string `gorm:"column:account_balance"` // 或 uint32
}
根据实际需求调整类型和值传递。

