我正在学习SSIS并对C#有一个很好的理解。我有一个变量(NumberRows)已经计算了Excel电子表格中的所有行。现在,我想通过使用MessageBox.Show方法(?)显示一条消息说明。
当我尝试做的时候:
MessageBox.Show("There are {0} Finalists", Dts.Variables["NumberRows"].Value);
我收到一条错误,说“无法从'对象'转换为字符串'”。
我在想自己“那很好,我只是在最后的.ToString()”就像这样:
MessageBox.Show("There are {0} Finalists", Dts.Variables["NumberRows"].Value.ToString());
错误消失但输出显示“有0名决赛选手”。然后我将其更改为:
MessageBox.Show("There are " + Dts.Variables["NumberRows"].Value + " Finalists");
现在它正确显示“有109名决赛选手”
我的问题已经解决,但我想知道我的错误是什么。任何帮助将不胜感激。
答案 0 :(得分:0)
MessageBox.Show
不会格式化字符串,例如string.Format()
或Console.WriteLine()
。
MessageBox.Show(String, String)
overload表示两个字符串参数用于文本&窗口的标题,没有提到格式。
要做你想做的事,你需要这样做:
MessageBox.Show(string.Format("There are {0} Finalists", Dts.Variables["NumberRows"].Value), "Title");
答案 1 :(得分:0)
如果您查看MessageBox.Show
的{{3}},您将找不到能够处理您尝试使用前两个代码段进行操作的重载。
以下方法MessageBox.Show(string text, string caption)
会发生什么情况,这会导致您的SQL值被放置在消息框对话框窗口的标题中。