gpt4 book ai didi

c# - 如何从存储过程中获取 SQL 字符串结果并将其保存在 C# Windows 应用程序字符串变量中

转载 作者:太空狗 更新时间:2023-10-30 01:21:09 27 4
gpt4 key购买 nike

我有以下存储过程:

ALTER PROCEDURE [dbo].[ProcedureName] 

@date NVARCHAR(50)

AS

BEGIN

SET NOCOUNT ON;

DECLARE @result nvarchar(500) -- this one should return string.

DECLARE @variable1 NVARCHAR(50)
set @variable1 = (SELECT COUNT(*) FROM dbo.Table1 WHERE column1 not in (select column1 from dbo.Table2))

DECLARE @variable2 NVARCHAR(50)
update dbo.Table1 set columnX = 1 where column1 not in (select column1 from dbo.Table2)

set @variable2 = @@ROWCOUNT

等等......它继续像 200 行脚本,至少有 10-12 个变量

之后我想得到这样的结果

'Hello,' + 

'Some Text here' +

@date +': ' +

'Explaining text for variable1- ' + @variable1 +

'Updated rows from variable2 - ' + @variable2 +

'some other select count - ' + @variable3 +

'some other update rowcount - '+ @variable4

......

直到现在我能够通过 PRINT 语句获得它,但不能将它带到我的 C# 代码中的变量,如下所示:

public void Execute_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Are you sure you want to execute the program?", "Confirm Start", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.No)
{
string connectionString = GetConnectionString(usernamePicker.Text, passwordPicker.Text);
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("dbo.ProcedureName", connection))
{
connection.Open();
cmd.CommandText = "dbo.ProcedureName";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@date", SqlDbType.VarChar).Value = dateTimePicker1.Text;

SqlParameter result = cmd.Parameters.Add("@result", SqlDbType.VarChar);
result.Direction = ParameterDirection.ReturnValue;

cmd.ExecuteScalar();
var resultout = (string)cmd.Parameters["@result"].Value;
connection.Close();
TextMessage.Text = dateTimePicker1.Text;
}
}
}
}

我得到的结果是 0 或 NULL 等等。我尝试使用 PRINT、RETURN、SET、OUTPUT 从 SQL 返回值......但似乎没有任何效果。然而,从 C# 获取变量到 SQL 似乎是一件小事。有什么想法吗?

最佳答案

如果您想将连接字符串作为输出返回,那么在过程结束时只需编写 select @result。请确保您已将其连接在此语句之前。

这将返回您可以在 C# 代码中作为字符串使用的字符串。

关于c# - 如何从存储过程中获取 SQL 字符串结果并将其保存在 C# Windows 应用程序字符串变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16560310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com