我正在使用Microsoft Visual Web Developer 2010 Express创建一个网站,并使用了"createUserWizard"
的工具箱。然后我把我的"CustomerInfo"
表的userId
添加到"data type=uniqueidentifier"
,因为我需要将它链接到aspnet_表中的用户名。不允许将数据类型sql_variant隐式转换为uniqueidentifier。使用CONVERT函数运行此查询
后来,我需要链接我的"Order"
表到"CustomerInfo"
表,所以我把我的orderId data type=uniqueidentifier
。于是,我打算插入我的订单详细信息到"Order"
表,但我的问题:
“从数据类型隐式转换 SQL_VARIANT到唯一标识符不 允许使用CONVERT函数来 运行此查询。” 。
我搜索并找到一些答案,如数据类型的参数设置为“清空”或删除它。但然后我有这个错误
“从字符串转换为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
如果你想让别人告诉你它有什么问题,你需要发布你的SQL。我们还需要表格中列的定义。 –