当前位置: 代码迷 >> Sql Server >> C# 根据uniqueidentifier操作数据库要怎么办,请问
  详细解决方案

C# 根据uniqueidentifier操作数据库要怎么办,请问

热度:22   发布时间:2016-04-24 10:21:50.0
C# 根据uniqueidentifier操作数据库要怎么处理,请教!

下面是我的存储过程:
USE [PrintPMIS]
GO
/****** Object:  StoredProcedure [dbo].[SPM_SYS_BusinessSub_Insert]    Script Date: 02/01/2014 15:19:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER proc [dbo].[PRO_PorjectDetail_Updata]
 @_Porjectid uniqueidentifier--ID
,@_PorjectNum nvarchar(100)--工单编号

With ENCRYPTION  --加密码存储过程

as
BEGIN
SET XACT_ABORT on--当出现错误回滚事务
Begin tran
----------------
UPDATE Pro_PorjectDetail
Set
 PorjectNum=@_PorjectNum--工单编号
WHERE
 id=@_Porjectid--编号  

  commit tran
SET XACT_ABORT off
END


下面是C#代码:
 //操作 数据库
                        SqlConnection sqlcon = new SqlConnection(MainForm.pMainWin.FormatConStr());//连接数据库
                        sqlcon.Open();
                        SqlCommand sqlcmd = new SqlCommand("PRO_PorjectDetail_Updata", sqlcon);
                        sqlcmd.CommandType = CommandType.StoredProcedure;

                        sqlcmd.Parameters.Add("@_Porjectid", SqlDbType.NVarChar).Value = DetailInfo.PorjectId;//编号用GUID和string都不行
                        sqlcmd.Parameters.Add("@_PorjectNum", SqlDbType.NVarChar).Value = DetailInfo.PorjectNum;//工单编号

                        sqlcmd.ExecuteNonQuery();
                        sqlcon.Close();

------解决方案--------------------
@_Porjectid  uniqueidentifier  改成  @_Porjectid   nvarchar(100)


sqlcmd.Parameters.Add("@_Porjectid", SqlDbType.NVarChar).Value = DetailInfo.PorjectId.ToString();