gpt4 book ai didi

c# - 获取从 SQL Server 返回的字符串值

转载 作者:行者123 更新时间:2023-11-30 14:52:05 25 4
gpt4 key购买 nike

我正在使用 C# 运行 SQL Server 存储过程,我想将从我的 sql 存储过程返回的变量存储在一个字符串变量中,但每次我尝试运行它时,我的 C# 语法错误告诉我它不能将 varchar 转换为 int。在使用 C# 和 SQL 进行通信时,我是一个新手,所以如果我遗漏了需要的信息或忽略了最明显的要点,请原谅我。以下是我的代码,如果需要任何其他代码来进一步帮助我解决此问题,请通知我。预先感谢所有提供帮助的人

//C# Syntax
private void btnBTNBTN_Click()
{
string returnedvariable = DoThisStuff(abcd, faraca);
}

public string DoThisStuff(string abcd, int faraca)
{
string value = string.Empty;
sqlsyntaxxxx = new StringBuilder();
sqlsyntaxxxx.Append("exec dbo.AlphaDawg ");
sqlsyntaxxxx.Append("'" + faraca + "'");
_dataSet = RUNSQL(abcd, sqlsyntaxxxx.ToString());
return value;
}

public DataSet RUNSQL(string abcd, string sqlsyntaxxxx)
{
_connectionString = System.Configuration.ConfigurationManager.AppSettings[connectionString].ToString();
_sqlDatabaseConnection = new SqlConnection(_connectionString);
_sqlCommand = new SqlCommand(sqlsyntaxxxx, _sqlDatabaseConnection);
_sqlDatabaseConnection.Open();
_dataSet = new DataSet();
_sqlDataAdapter = new SqlDataAdapter(_sqlCommand);
_sqlDataAdapter.Fill(_dataSet, "Data");
return _dataSet;
}

SQL 存储过程

ALTER PROCEDURE [dbo].[AlphaDawg]
(
@faraca int
)
AS
BEGIN
DECLARE @returnvalue varchar(500)

UPDATE [dbo].[redllama]
SET [AZYXIE] = '682134'+[zoneNumber]
WHERE faraca = @faraca

Set @returnvalue = (Select [AZYXIE] from [dbo].[redllama] WHERE faraca = @faraca)

return @returnvalue
END

最佳答案

首先,SQL return 语句只能从过程中返回一个整数,并且该值不属于任何数据集。

在任何情况下,return 都不是您想要的,即使在 99% 的情况下都是整数(它旨在作为其他 SQL 过程的状态值)。您通常通过在过程中执行 SELECT ... 来通过数据集返回数据。您也可以通过输出参数返回单个值,但我会推荐数据集,直到您对此更加熟悉为止。

如下更改您的 SQL 过程,它应该可以工作:

ALTER PROCEDURE [dbo].[AlphaDawg]
(
@faraca int
)
AS
BEGIN
DECLARE @returnvalue varchar(500)

UPDATE [dbo].[redllama]
SET [AZYXIE] = '682134'+[zoneNumber]
WHERE faraca = @faraca

Select [AZYXIE] from [dbo].[redllama] WHERE faraca = @faraca)
END

嗯,看来您的 C# 代码也需要稍微更改一下。我有一段时间没有这样做了,但我认为这就是你想要的:

public string DoThisStuff(string abcd, int faraca)
{
string value = string.Empty;
sqlsyntaxxxx = new StringBuilder();
sqlsyntaxxxx.Append("exec dbo.AlphaDawg ");
sqlsyntaxxxx.Append("'" + faraca + "'");
_dataSet = RUNSQL(abcd, sqlsyntaxxxx.ToString());

value = _dataSet.Tables[0].Rows[0]["AZYXIE"].ToString();
return value;
}

关于c# - 获取从 SQL Server 返回的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529511/

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