C# 在一个命令中创建多个sql查询
我用SQLServer存储过程编写了这段代码,我想单独运行到c代码中。问题是我不知道如何使用C#实现这一点。这是存储过程的代码C# 在一个命令中创建多个sql查询,c#,mysql,C#,Mysql,我用SQLServer存储过程编写了这段代码,我想单独运行到c代码中。问题是我不知道如何使用C#实现这一点。这是存储过程的代码 USE [SSFASys] GO /****** Object: StoredProcedure [dbo].[userlogs] Script Date: 6/8/2018 2:19:30 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[use
USE [SSFASys]
GO
/****** Object: StoredProcedure [dbo].[userlogs] Script Date: 6/8/2018 2:19:30 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[userlogs]
@id int,
@fullname varchar(150),
@activitydetails varchar(200),
@userform int,
@datelog datetime
as
declare @userid int
declare @activityid int
begin
SELECT @userid=id FROM endusers WHERE (fullname = @fullname) AND (id = @id)
select @activityid=id from enduseractivitydetials where activitydet=@activitydetails
If (@activityid is null)
Begin
INSERT INTO enduseractivitydetials VALUES (@activitydetails)
Select @activityid =SCOPE_IDENTITY()
end
if not exists(SELECT enduserLOGS.userid FROM enduserLOGS INNER JOIN enduseractivitydetials ON enduserLOGS.activitydetails = enduseractivitydetials.id INNER JOIN endusers ON enduserLOGS.userid = endusers.id
WHERE (endusers.fullname = @fullname) AND (enduserLOGS.date = @datelog) AND (endusers.id = @userid) AND (enduseractivitydetials.activitydet = @activitydetails))
begin
insert into enduserLOGS values (@userid,@userform,@activityid,@datelog)
end
end
我将我的数据库从SQLServer切换到MySQL,以便与其他软件开发人员一起采用,因为我正在与之斗争,我需要帮助
谢谢。在一个块中可以同时执行多条语句;每个语句都必须以分号
结尾代码>。翻译存储过程时
,不得在此块中声明输入参数;只需使用SqlCommand
对象将每个参数作为SqlParameter
传递即可
对于问题中的存储过程
,如下所示。
(因为我不能在这里执行,您可能需要修改一些拼写错误;但您明白了。)
你可以给我一些链接,让我按照正确的方式来做吗?请我确实读过一些文章,但我不知道哪一篇更可取。我不清楚你想在“C#one”中做什么,或者这与MySQL有什么关系。请重新表述问题,添加有关您试图实现的目标的更多信息。@DaveEP我上面提供的代码来自MS SQL Server中的存储过程。现在我想要的是用C#windows窗体构造此代码并立即执行。问题是,我不知道怎么做。我知道如何执行单个sql查询,但对于多个查询,这就是问题所在,我需要帮助。谢谢你:
const String TSQL = @"
DECLARE @userid INT;
DECLARE @activityid INT;
SELECT @userid = id FROM endusers WHERE (fullname = @fullname) AND (id = @id);
SELECT @activityid = id FROM enduseractivitydetials WHERE activitydet = @activitydetails;
IF (@activityid IS NULL)
BEGIN
INSERT INTO enduseractivitydetials
VALUES (@activitydetails);
SELECT @activityid = SCOPE_IDENTITY();
END
IF NOT EXISTS (
SELECT enduserLOGS.userid
FROM enduserLOGS
INNER JOIN enduseractivitydetials ON enduserLOGS.activitydetails = enduseractivitydetials.id
INNER JOIN endusers ON enduserLOGS.userid = endusers.id
WHERE (endusers.fullname = @fullname)
AND (enduserLOGS.date = @datelog)
AND (endusers.id = @userid)
AND (enduseractivitydetials.activitydet = @activitydetails)
)
BEGIN
INSERT INTO enduserLOGS VALUES (@userid,@userform,@activityid,@datelog);
END
END
";
using (SqlConnection cn = new SqlConnection("your connectionstring goes here"))
{
cn.Open();
using (SqlCommand cmd = new SqlCommand(TSQL))
{
cmd.Connection = cn;
cmd.Parameters.Add(new SqlParameter("@id", 123));
cmd.Parameters.Add(new SqlParameter("@fullname", "John Doe"));
cmd.Parameters.Add(new SqlParameter("@activitydetails", "Lorum ipsum ..."));
cmd.Parameters.Add(new SqlParameter("@datelog", DateTime.Now));
cmd.Parameters.Add(new SqlParameter("@userform", 456));
cmd.ExecuteNonQuery();
}
}