我有一个变量“按键”,在我们的系统拨打电话时会设置。它写入文本文件的方式如下:
w.Write(attrColl["keypress"].Value);
我需要做的是将这些按键传递到sproc。
所以,我的第一个问题是如何将它传递给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?或者处理#。
的最佳方法是什么感谢任何想法,建议或文档。
答案 0 :(得分:3)
我假设你的文本文件看起来像这样,都在一行上。
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();
...
}
}