Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一个命令中创建多个sql查询_C#_Mysql - Fatal编程技术网

C# 在一个命令中创建多个sql查询

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

我用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].[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();
    }
}