我怎么能显示SQL&QUOT的输出; PRINT"命令在C#中? [英] How Can i display the output of SQL "PRINT" Command in C#?

查看:110
本文介绍了我怎么能显示SQL&QUOT的输出; PRINT"命令在C#中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个SQL程序,它总是返回打印命令,我想提取这个打印命令即在C#程序我怎么能做到这一点的输出?下面是该过程

  ALTER PROC ResultsPoll
@pollid INT

DECLARE @ COUNT1 INT
DECLARE @ COUNT2 INT
DECLARE @共3个记录INT
DECLARE @ count4 INT
DECLARE @ count5 INT
DECLARE @Test VARCHAR(MAX)
DECLARE @value VARCHAR(MAX)
SELECT @ COUNT1 = COUNT(mem_id)FROM Students_answer_Polls INNER JOIN投票ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND St​​udents_answer_Polls.answer = Polls.a1
SELECT @ COUNT2 = COUNT(mem_id)FROM Students_answer_Polls INNER JOIN投票ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND St​​udents_answer_Polls.answer = Polls.a2
SELECT @共3个记录= COUNT(mem_id)FROM Students_answer_Polls INNER JOIN投票ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND St​​udents_answer_Polls.answer = Polls.a3
SELECT @ count4 = COUNT(mem_id)FROM Students_answer_Polls INNER JOIN投票ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND St​​udents_answer_Polls.answer = Polls.a4
SELECT @ count5 = COUNT(mem_id)FROM Students_answer_Polls INNER JOIN投票ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND St​​udents_answer_Polls.answer = Polls.a5SELECT @测试= Polls.a1从民意调查WHERE poll_id = @pollid
IF(@测试IS NOT NULL)
开始
PRINT(+ @ +测试谁选择了学生人数'是:'+''+ CAST(@ COUNT1为varchar(MAX)))
结束
SELECT @测试= Polls.a2从民意调查WHERE poll_id = @pollid
IF(@测试IS NOT NULL)
开始
PRINT(+ @ +测试谁选择了学生人数'是:'+''+ CAST(@ COUNT2为varchar(MAX)))
结束
SELECT @测试= Polls.a3从民意调查WHERE poll_id = @pollid
IF(@测试IS NOT NULL)
开始
PRINT(+ @ +测试谁选择了学生人数'是:'+''+ CAST(@共3个记录为VARCHAR(MAX)))
结束
SELECT @测试= Polls.a4从民意调查WHERE poll_id = @pollid
IF(@测试IS NOT NULL)
开始
PRINT(+ @ +测试谁选择了学生人数'是:'+''+ CAST(@ count4为varchar(MAX)))
结束
SELECT @测试= Polls.a5从民意调查WHERE poll_id = @pollid
IF(@测试IS NOT NULL)
开始
PRINT(+ @ +测试谁选择了学生人数'是:'+''+ CAST(@ count5为varchar(MAX)))
结束


解决方案

您需要订阅<一个href=\"http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.infomessage.aspx\"><$c$c>SqlConnection.InfoMessage事件。

MSDN有一些例如code 这里

i am having a SQL Procedure that always returns "PRINT" Command and i want to extract the output of this "PRINT" Command i.e the procedure in C# how can i do that ? here is the PROCEDURE

ALTER PROC ResultsPoll
@pollid INT 
AS
DECLARE @count1 INT 
DECLARE @count2 INT 
DECLARE @count3 INT 
DECLARE @count4 INT 
DECLARE @count5 INT 
DECLARE @test VARCHAR(MAX)
DECLARE @value VARCHAR(MAX)
SELECT @count1 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a1
SELECT @count2 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a2
SELECT @count3 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a3
SELECT @count4 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a4
SELECT @count5 = COUNT(mem_id) FROM Students_answer_Polls INNER JOIN Polls ON Polls.poll_id = Students_answer_Polls.poll_id
WHERE Students_answer_Polls.poll_id = @pollid AND Students_answer_Polls.answer = Polls.a5

SELECT @test=Polls.a1 FROM Polls WHERE poll_id = @pollid
IF(@test IS NOT NULL)
BEGIN
PRINT ('Number of students who chose '+@test+' is:'+' '+CAST (@count1 AS VARCHAR(MAX)))
END
SELECT @test=Polls.a2 FROM Polls WHERE poll_id = @pollid
IF(@test IS NOT NULL)
BEGIN
PRINT ('Number of students who chose '+@test+' is:'+' '+CAST (@count2 AS VARCHAR(MAX)))
END
SELECT @test=Polls.a3 FROM Polls WHERE poll_id = @pollid
IF(@test IS NOT NULL)
BEGIN
PRINT ('Number of students who chose '+@test+' is:'+' '+CAST (@count3 AS VARCHAR(MAX)))
END
SELECT @test=Polls.a4 FROM Polls WHERE poll_id = @pollid
IF(@test IS NOT NULL)
BEGIN
PRINT ('Number of students who chose '+@test+' is:'+' '+CAST (@count4 AS VARCHAR(MAX)))
END
SELECT @test=Polls.a5 FROM Polls WHERE poll_id = @pollid
IF(@test IS NOT NULL)
BEGIN
PRINT ('Number of students who chose '+@test+' is:'+' '+CAST (@count5 AS VARCHAR(MAX)))
END

解决方案

You need to subscribe to the SqlConnection.InfoMessage Event.

MSDN has some example code here.

这篇关于我怎么能显示SQL&QUOT的输出; PRINT&QUOT;命令在C#中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆