给定一个简单的存储过程,它将填充一个OUTPUT参数以及RETURN一个sa值,例如:
CREATE PROCEDURE sp_test
(
@param_out INT OUTPUT
)
AS BEGIN
SELECT @param_out = 9
RETURN 2
END
Run Code Online (Sandbox Code Playgroud)
如何使用sp_executesql并捕获这两个值来调用此过程?
我试过了:
DECLARE @ret INT, @param_out INT
EXEC SP_EXECUTESQL N'EXEC @ret = sp_test',
N'@ret INT OUTPUT, @param_out INT OUTPUT',
@ret OUTPUT,
@param_out OUTPUT
SELECT @ret, @param_out
Run Code Online (Sandbox Code Playgroud)
但是,这抱怨@param_out没有提供:
过程或函数“ sp_test”需要未提供的参数“ @param_out”。
我从类似的帖子中知道,无限的while循环因导致Unity3d崩溃而臭名昭著。我想隐含地在我正在处理的东西中进行一会儿循环,我相当确定这不是“无限”,但会导致游戏崩溃。
逻辑的想法是检查整数列表中的连续数字,并以此为基础应用加分。该列表包含“有效射击”,并且每次射击时都会添加一个新的int-有效射击越连续,奖金就越高。
这是我所拥有的:
int count = 0;
int firstItem = 0;
int multiples = 3;
int currentMultiple = 0;
int bonusX = 0;
foreach (int i in effectiveShots)
{
if (count == 0)
{
firstItem = i;
count = 1;
}
else if (i == firstItem + count)
{
count++;
}
}
while (count >= multiples)
{
currentMultiple = multiples;
if (count == currentMultiple + multiples)
{
bonusX += 1;
}
if (bonusX > 10 || gameOver)
break;
UnityEngine.Debug.Log(bonusX);
} …Run Code Online (Sandbox Code Playgroud) 我对 json 相当陌生,我正在尝试将一些 json 内容转换为 C# 类以存储它以供以后使用。我在尝试创建适合数据结构的类时遇到问题。json 内容的示例如下所示。
{
"FirstItem": {
"id": 1,
"type": "foo",
"colours": ["blue", "black", "green"],
"reviews": {
"positive": ["The best", "unbelievable", "Awesome"],
"negative": ["Sh*t", "Awful", "Dire", "Terrible", "Appalling"],
"neutral": ["OK", "Meh"]
}
},
"SecondItem": {
"id": 2,
"type": "bar",
"colours": ["red", "white", "yellow"],
"reviews": {
"positive": ["Great", "Amazing", "Fantastic", "Perfect", "Uplifting"],
"negative": ["Terrible", "Shocking", "abysmal"],
"neutral": ["OK", "Standard", "Vanilla"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
值得注意的是,这只是 json 数据的一个小样本,我希望使用更大的数据集,该数据集始终采用这种格式,但是 , FirstItem(SecondItem名称?) 总是会有所不同。我可能最终会得到一个MillionthItem.
我的解决方案包含三个项目
LowestLevel类,以及一个MidLevel继承自的类LowestLevelHighestLevel继承自上述MidLevel类的类我在下面列出了这些类的代码 - 请注意每个项目都有自己的命名空间
namespace ClassLib
{
public class HighestLevel : MidLevel
{
public HighestLevel() { }
}
}
namespace SharedProj
{
public class MidLevel : LowestLevel
{
public MidLevel() { }
}
public class LowestLevel
{
public LowestLevel() { }
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Console Applications Program类中,我正在尝试创建类的新实例HighestLevel,就像这样
LowestLevel myclass = new HighestLevel();
Run Code Online (Sandbox Code Playgroud)
但是,这在Visual Studio中给出了一个错误,说明
Cannot implicitly convert type ClassLib.HighestLevel to SharedProj.LowestLevel
任何人都可以帮助我理解为什么会这样,以及我如何解决它?当这三个类都在同一个项目/命名空间内时,似乎没有出现这个问题,所以也许它是由在各个项目中拆分这些类的方法引起的.