将变量传递给存储过程c#

问题描述

我有一个变量“ keypress \”,当我们的系统中拨打电话时会设置该变量。将其写入文本文件的方式如下:
w.Write(attrColl[\"keypress\"].Value);
我需要做的是将这些按键传入存储过程中。 因此,我的第一个问题是如何将其传递给sproc,我的代码如下所示:
mySqlCommand.Parameters.Add(\"@Q1\",SqlDbType.Int).Value = keypress;
mySqlCommand.Parameters.Add(\"@Q2\",SqlDbType.Int).Value = keypress;
例如:如果第一个按键是500#,第二个按键是300#。 它应该看起来像@ Q1 = 500#和@ Q2 = 300# 我需要先将按键转换为字符串吗?如果是这样,什么是最好的方法,因为我给出了大约10个问题,所以我会返回10个独特的按键。 其次,由于每次按键末尾都有一个#号,因此sproc输入是否为nvarchar而不是int?或处理#的最佳方法是什么。 任何想法,建议或文档,我们将不胜感激。     

解决方法

        我假设您的文本文件看起来像这样,都在一行上。   100#400#900# 我还假设您已经将此行读回到某个名称的变量中。 所以
        var keypressline = \"100#400#900#\";
        var keyPresses = keypressline.Split(\'#\');
        for (var i = 0; i < keyPresses.Length; i++)
        {               
            mySqlCommand.Parameters.AddWithValue(\"@Q\" + i,keyPresses[i]);
        }
我故意将@Q留为字符串。如果强制转换为整数,则首先按下0将丢失该事实。 编辑:包含的加载文件代码
string fullPathAndFileName = @\"C:\\blah\\blah.txt\";
string keypresses;
using (StreamReader sr = new StreamReader(fullPathAndFileName)) 
{
    while (sr.Peek() >= 0) 
    {
        keyPresses = sr.ReadLine();
    ...
    }
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...