gpt4 book ai didi

c# - 如何将空值插入到 Uniqueidentifier 列

转载 作者:行者123 更新时间:2023-11-30 19:42:43 25 4
gpt4 key购买 nike

在我的 C# 项目中,我需要向 UniqueIdentifier 列插入一些空值。

对于字段 city Guid,state Guid 字段我应该能够插入空值如果没有可用的值(唯一标识符)。我收到以下错误

“从字符串转换为唯一标识符时转换失败。”

这是我的代码。

   string Query = @"INSERT INTO mytable
(table_GUID,
Date,
city_GUID,
state_GUID,
)

VALUES
('" + tableGUID + @"',
'" + Date + @"',
'" + cityGUID + @"',
'" + stateGUID + @"'
)

string insert = sql.executeNonQuery(Query);

最佳答案

您不应该提供这样的值。创建一个 SqlCommand 并将值作为参数提供。要插入空值,请使用 DBNull.Value

    var command = new SqlCommand(
@"INSERT INTO mytable (table_GUID, Date, city_GUID, state_GUID)
VALUES (@TableGuid, @Date, @CityGuid, @StateGuid)", sqlConnection);
command.Parameters.AddWithValue("TableGuid", tableGUID ?? DBNull.Value);
command.Parameters.AddWithValue("Date", Date);
command.Parameters.AddWithValue("CityGuid", cityGUID ?? DBNull.Value);
command.Parameters.AddWithValue("StateGuid", stateGUID ?? DBNull.Value);
command.ExecuteNonQuery();

另一种方法是提供 NULL 作为值。参见 how do you insert null values into sql server

您还可以定义一个辅助函数来返回用引号括起来的值或 NULL 字符串。

private string GetQuotedParameterThing(Guid? value)
{
return value == null ? "NULL" : "\"+ value + \"";
}

然后只需将 GetQuotedParameterThing(tableGUID) 提供给您的命令字符串即可。

关于c# - 如何将空值插入到 Uniqueidentifier 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16993021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com