2 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
1.直接寫(xiě)個(gè)函數(shù)傳參數(shù)
2.用存儲(chǔ)過(guò)程(這里我就不給你加事務(wù)處理啦)
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[RoleOperate]
-- Add the parameters for the stored procedure here
@RoleId varchar(64),--角色I(xiàn)D
@RoleName varchar(20),--角色名稱
@MaxYear int,--年限
@OperateType int,--操作類型1添加2修改3刪除
@yxshuju varchar(MAX) output
AS
BEGIN
SET NOCOUNT ON;
declare @vroleid varchar(50)
declare @vrolename varchar(20) --版本
declare @vmaxyear int --MAC
SELECT @vroleid=isnull([RoleId],'') FROM [dbo].[Sys_Role] WHERE [RoleId] = @RoleId
if @vroleid<>''
begin
if (@OperateType=1)
begin
return 0;
end
else
begin
if (@OperateType=2)
begin
update [dbo].[Sys_Role] set RoleId=@RoleId,RoleName=@RoleName,MaxYear=@MaxYear where [RoleId]=@RoleId
set @yxshuju='2';
end
else
begin
delete from [dbo].[Sys_Role] where [RoleId]=@RoleId
set @yxshuju='3';
return 3;
end
end
end
else
begin
if (@OperateType=1)
begin
insert into[dbo].[Sys_Role](RoleId,RoleName,MaxYear)values(@RoleId,@RoleName,@MaxYear)
set @yxshuju='1';
return 1;
end
else
begin
if (@OperateType=2)
begin
set @yxshuju='2';
end
else
begin
set @yxshuju='3';
return 3;
end
end
end
END
SET ANSI_NULLS ON
調(diào)用函數(shù):
public static int RoleOperate(string RoleId, string RoleName, Int32 MaxYear, Int32 OperateType)
{
Int32 rValue = 0;
try
{
SQLHelper.ModelSql.Command.CommandText = "RoleOperate";
SqlHelper.SQLHelper.ModelSql.Command.CommandType = CommandType.StoredProcedure;
SqlHelper.SQLHelper.ModelSql.Command.Parameters.Clear();
SqlParameter roleid = SQLHelper.ModelSql.Command.Parameters.Add("@RoleId", SqlDbType.VarChar, 50);
roleid.Value = RoleId;
SqlParameter rolename = SQLHelper.ModelSql.Command.Parameters.Add("@RoleName", SqlDbType.VarChar, 50);
rolename.Value = RoleName;
SqlParameter maxyear = SQLHelper.ModelSql.Command.Parameters.Add("@MaxYear", SqlDbType.Int);
maxyear.Value = MaxYear;
SqlParameter operatetype = SQLHelper.ModelSql.Command.Parameters.Add("@OperateType", SqlDbType.Int);
operatetype.Value = OperateType;
SqlParameter yxshuju = SQLHelper.ModelSql.Command.Parameters.Add("@yxshuju", SqlDbType.VarChar, 300);
yxshuju.Direction = ParameterDirection.Output;
SQLHelper.ModelSql.Connection.Open();
SQLHelper.ModelSql.Command.ExecuteNonQuery();
rValue = int.Parse(yxshuju.Value.ToString());
}
catch (Exception ex)
{
rValue = -1;
}
finally
{
SQLHelper.ModelSql.Connection.Close();
}
return rValue;
}

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
先說(shuō)引號(hào)
上面這段代碼對(duì)數(shù)據(jù)庫(kù)進(jìn)行了操作,那么就涉及到sql語(yǔ)句。C#操作數(shù)據(jù)庫(kù)時(shí)的sql語(yǔ)句是一段傳過(guò)去的字符串例如:select * from table1
你在查詢分析器里可以直接敲這行語(yǔ)句,但是從c#中傳過(guò)去的就是由引號(hào)括起來(lái)的字符串了也就是 string sql = "select * from table1";
那么我們?nèi)绻氚袰#里的一個(gè)變量a作為條件傳到sql中就要這么寫(xiě):
string a="table1";
string sql="select * from" + a; 這里a是變量,所以字符串拼接后的sql變量就為"select * from table1"了 同樣的道理,在C#中逗號(hào),空字符串""就要這么寫(xiě)才能和sql拼接起來(lái)
- 2 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)