将Guid值插入Sql Server(UniqueIdentifier列)时出错。(内部说明)

Gop*_*mal 3 c# asp.net sql-server-2008

我的数据库中有一个表,其中2列的uniqueidentifier不是null类型。我正在尝试从asp.net c#在该表上插入一行,如下所示:

sqlCmd.CommandText = string.Format("Insert Into Member(MemberNo,MemberEmpId,...) values({0},{1},... )", MemNo, MemEmpNo, ...);
Run Code Online (Sandbox Code Playgroud)

它引发了以下异常,

“浮点值'24e46222'超出计算机表示范围(8个字节)。'a8c'附近的语法不正确。浮点值'6664e7925'超出计算机表示范围(8字节)。”

我用谷歌搜索了这个错误,并得到了参考,我尝试了一下,但是仍然给出了同样的错误。有人可以帮我解决这个问题。除了这个,我什么也找不到。

提前致谢!

cod*_*biz 6

您在Guid上缺少引号,这就是为什么您得到此错误。您实际上应该使用参数化查询来避免sql注入和诸如此类的问题(例如,缺少引号)

应该(但不建议)

values({0},'{1}',... )  //<-- see the added quotes around the Guid part
Run Code Online (Sandbox Code Playgroud)

理想情况下,您应该使用参数化

values(@id,@guid,... ) //<--
Run Code Online (Sandbox Code Playgroud)

并设置值

cmd.Parameters.AddWithValue("@id", someValueHere);
cmd.Parameters.AddWithValue("@guid", someGuidValueHere");
Run Code Online (Sandbox Code Playgroud)