GVKun编程网logo

asp.net – 不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询

16

在本文中,我们将带你了解asp.net–不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询在这篇文章中,同时我们还将给您一些技巧,以帮

在本文中,我们将带你了解asp.net – 不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的C#中的uniqueidentifier等效数据类型、JPA:如何映射SQL Server uniqueidentifier类型、NewID()创建 uniqueidentifier 类型的唯一值、oracle 数据库中 sql server uniqueidentifier 数据类型的等效列是什么?

本文目录一览:

asp.net – 不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询

asp.net – 不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询

我正在使用Microsoft Visual Web Developer 2010 Express创建一个网站,我使用了“createuserWizard”工具箱.然后我将userId用于我的“CustomerInfo”表到“data type = uniqueidentifier”,因为我需要将它链接到aspnet_表中的用户名.

稍后,我需要将“Order”表链接到“CustomerInfo”表,因此我将orderId数据类型= uniqueidentifier.然后,我计划将我的订单详细信息插入“订单”表,但我遇到的问题是:

“Implicit conversion from data type
sql_variant to uniqueidentifier is not
allowed. Use the CONVERT function to
run this query”.

我搜索并找到一些答案,如参数设置为“空”的数据类型或删除它.但后来我有这个错误

” Conversion Failed when converting from character string to uniqueidentifier.”

这是我的sql

<asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ConnectionStrings:ConnectionString %>" 
                                    DeleteCommand="DELETE FROM [Order] WHERE [orderId] = @orderId" 
                                    InsertCommand="INSERT INTO [Order] ([orderId],[userId],[Services],[PickUpDate],[PickUpTime],[SpecialDate],[SpecialTime]) VALUES (@orderId,@userId,@Services,@PickUpDate,@PickUpTime,@SpecialDate,@SpecialTime)" 
                                    SelectCommand="SELECT * FROM [Order]" 

                                    UpdateCommand="UPDATE [Order] SET [userId] = @userId,[Services] = @Services,[PickUpDate] = @PickUpDate,[PickUpTime] = @PickUpTime,[SpecialDate] = @SpecialDate,[SpecialTime] = @SpecialTime WHERE [orderId] = @orderId">
                                    <DeleteParameters>
                                        <asp:Parameter Name="orderId" Type="Object" />
                                    </DeleteParameters>
                                    <InsertParameters>
                                    <asp:Parameter Name="orderId" Type="Object" />
                                    <asp:Parameter Name="userId" Type="Object" />
                                        <asp:Parameter Name="Services" Type="String" />
                                        <asp:Parameter Name="PickUpDate" Type="String" />
                                        <asp:Parameter Name="PickUpTime" Type="String" />
                                        <asp:Parameter Name="SpecialDate" Type="String" />
                                        <asp:Parameter Name="SpecialTime" Type="String" />
                                    </InsertParameters>
                                    <UpdateParameters>
                                        <asp:Parameter Name="userId" Type="Object" />
                                        <asp:Parameter Name="Services" Type="String" />
                                        <asp:Parameter Name="PickUpDate" Type="String" />
                                        <asp:Parameter Name="PickUpTime" Type="String" />
                                        <asp:Parameter Name="SpecialDate" Type="String" />
                                        <asp:Parameter Name="SpecialTime" Type="String" />
                                        <asp:Parameter Name="orderId" Type="Object" />
                                    </UpdateParameters>
                                </asp:sqlDataSource>

现在我想起来了,也许我的代码在vb中存在问题.
我会把它放在这里,请告诉我如何正确地将数据插入数据库.

Protected Sub OrderButton_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles OrderButton.Click
    sqlDataSource1.InsertParameters(0).DefaultValue = Now
    sqlDataSource1.Insert()
    Response.Redirect("~/Customer/AfterOrder.aspx")
End Sub

解决方法

如果要从代码中插入GUID,则应创建参数类型GUID

<asp:Parameter Name="ParamName" DbType="Guid" />

你应该将GUID值传递为(c#):

sqlDataSource1.InsertParameters["ParamName"].DefaultValue = System.Guid.NewGuid().ToString();

如果要传递字符串值,则必须在插入查询中使用CONVERT(UNIQUEIDENTIFIER,’YOUR VALUE’),如下所示:

InsertCommand="INSERT INTO [Order] ([UserId],[etc]) 
VALUES (CONVERT(UNIQUEIDENTIFIER,@UserId),@etc)"

C#中的uniqueidentifier等效数据类型

C#中的uniqueidentifier等效数据类型

什么是C#3.5数据类型中的uniqueidentifier(SQL Server 2005)等效项?

JPA:如何映射SQL Server uniqueidentifier类型

JPA:如何映射SQL Server uniqueidentifier类型

我继承了一个SQL Server数据库,该数据库正试图通过JPA进行映射。许多表都有一uniqueidentifier列。我试图像这样映射它们:

@Id@GenericGenerator(name = "generator", strategy = "guid", parameters = {})@GeneratedValue(generator = "generator")@Column(name = "APPLICATION_ID")private String id;

Hibernate抱怨:

Found: uniqueidentifier, expected: varchar(255)

答案1

小编典典

POJO中主键属性的数据类型确定其映射DB列的数据类型,这由Dialect类指定。按照SQLServerDialect由Hibernate提供,它不具有任何数据类型映射到uniqueidentifier,并且String在默认情况下映射到varchar(255)

我认为
guid基于String主键的策略仅意味着hibernate将为POJO的主键属性生成一个GUID值,并且此生成的GUID值将被插入到varchar(255)列中以模拟uniqueidentifier

你可以尝试覆盖由指定的映射方言使用类columnDefinition属性@Column

 @Id @GenericGenerator(name = "generator", strategy = "guid", parameters = {}) @GeneratedValue(generator = "generator") @Column(name = "APPLICATION_ID" , columnDefinition="uniqueidentifier") private String id;

NewID()创建 uniqueidentifier 类型的唯一值

NewID()创建 uniqueidentifier 类型的唯一值

 ,美国服务器,香港空间,香港虚拟主机

oracle 数据库中 sql server uniqueidentifier 数据类型的等效列是什么?

oracle 数据库中 sql server uniqueidentifier 数据类型的等效列是什么?

如何解决oracle 数据库中 sql server uniqueidentifier 数据类型的等效列是什么??

我需要从 sqlserver 中提取 uniqueidentifier 列数据并将其加载到 oracle 数据库中。我尝试了 raw(16),但我收到了无效的参数绑定错误。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于asp.net – 不允许从数据类型sql_variant到uniqueidentifier的隐式转换.使用CONVERT函数运行此查询的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于C#中的uniqueidentifier等效数据类型、JPA:如何映射SQL Server uniqueidentifier类型、NewID()创建 uniqueidentifier 类型的唯一值、oracle 数据库中 sql server uniqueidentifier 数据类型的等效列是什么?等相关知识的信息别忘了在本站进行查找喔。

本文标签: