UniqueIdentifier类型,怎么插入?

enasp 2008-12-19 11:22:30
userid UniqueIdentifier,16

userid = Session["userid"].ToString();//接收session参数

插入数据:

cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier,16, "userid").Value = Convert.ToInt32(Session["userid"]);


在这句中提示:输入字符串的格式不正确。
...全文
996 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
enasp 2008-12-19
  • 打赏
  • 举报
回复
错误 89 与“System.Data.SqlClient.SqlParameterCollection.Add(string, System.Data.SqlDbType, int)”最匹配的重载方法具有一些无效参数
enasp 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 balenoww 的回复:]
SqlParameter param = new SqlParameter("UserGuid", SqlDbType.UniqueIdentifier);
param.Value = userid;
command.Parameters.Add(param);
[/Quote]
和我的不是一样吗?





userid = Session["userid"].ToString();
string strconn = ConfigurationSettings.AppSettings["connstring"];
SqlConnection conn = new SqlConnection(strconn);



SqlCommand cm = new SqlCommand("complain_", conn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier,16, "userid").Value = Convert.ToInt32(Session["userid"]);




CREATE proc complain_
@userid uniqueidentifier,
@aa varchar(50)
as
insert into feedback (userid,aa) values ( @userid,@aa)
GO

浮生若梦丶 2008-12-19
  • 打赏
  • 举报
回复
shine_fly 2008-12-19
  • 打赏
  • 举报
回复
@@IDENTITY
返回最后插入的标识值。

语法
@@IDENTITY

返回类型
numeric

select @@IDENTITY
balenoww 2008-12-19
  • 打赏
  • 举报
回复
SqlParameter param = new SqlParameter("UserGuid", SqlDbType.UniqueIdentifier);
param.Value = userid;
command.Parameters.Add(param);
enasp 2008-12-19
  • 打赏
  • 举报
回复
这样写也不行啊

cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier, "userid").Value = new Guid(Session["userid"].ToString());


提示错误:

cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier, "userid").Value = new Guid(Session["userid"].ToString());

无法将string转换为int?? 这我中间没有int啊
enasp 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 vrhero 的回复:]
cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier,16, "userid").Value = Convert.ToInt32(Session["userid"]);
--------
1.UniqueIdentifier是Guid类型,长度128位...你指定16位长度是无效的...
2.Int32和Guid是不可转换的...
[/Quote]

那应该怎么弄?
enasp 2008-12-19
  • 打赏
  • 举报
回复
这是表结构


user表:


CREATE TABLE [dbo].[user] (
[userID] uniqueidentifier ROWGUIDCOL NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

) ON [PRIMARY]


feedback表

CREATE TABLE [dbo].[feedback] (
[feedbackID] uniqueidentifier ROWGUIDCOL NOT NULL ,
[userid] [uniqueidentifier] NULL ,
[aa] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

) ON [PRIMARY]
GO


Jack2013tong 2008-12-19
  • 打赏
  • 举报
回复
c# 中可用 System.Guid.NewGuid()
sql server 中可用newid()
要的是一个唯一值的字符串
arjsyy 2008-12-19
  • 打赏
  • 举报
回复
设置那个类型的字段的默认值为NewID()
Robin 2008-12-19
  • 打赏
  • 举报
回复
uniqueidentifier 数据类型存储 16 字节的二进制值,该值的使用与全局唯一标识符 (GUID) 一样。GUID 是一个唯一的二进制数字;世界上的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。

uniqueidentifier 列的 GUID 值通常由以下方式获得:

在 Transact-SQL 语句、批处理或脚本中调用 NEWID 函数。


在应用程序代码中,调用返回 GUID 值的应用程序 API 函数或方法。

System.Guid.NewGuid()


vrhero 2008-12-19
  • 打赏
  • 举报
回复
cm.Parameters.Add("@userid", SqlDbType.UniqueIdentifier,16, "userid").Value = Convert.ToInt32(Session["userid"]);
--------
1.UniqueIdentifier是Guid类型,长度128位...你指定16位长度是无效的...
2.Int32和Guid是不可转换的...
enasp 2008-12-19
  • 打赏
  • 举报
回复
谁知道啊,

user表的:
userid类型是 UniqueIdentifier,16

feedback表是:
feedbackID USERID aa

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧