EDIT#2
我更改了标题名称,因为它不再代表 我问的问题。事实证明我的问题是显示& c#winforms标签中的符号。
Enter "&" symbol into a text Label in Windows Forms?
这就是问题的答案,结果是重复的
这是原来的
我目前正在使用c#和sql。我写入数据库没有问题,当我使用MS SQL Server Manager检查字段时,我可以看到& varchar字段中的符号。但是当我使用c#检索它时,它似乎被省略了。
myTable.myColumn =" Me & You";
string testString="";
SQLConnection con = new SQLConnection(...)
SQLCommand command=new SQLCommand("Select Top 1 * from myTable",con)
SQLDataReader reader= command.ExecuteQuery()
while (reader.read())
{
testString=reader["myColumn"].ToString();
MessageBox.Show(testString);
}
输出=我你
我在飞行中写了这个,它可能在语法上不正确。这是正常输出还是我可能在某处出错?
编辑#1所以事实证明MessageBox确实显示了&amp ;.加载的对象保持&符号也是。即使是显示符号的标签也包含&其.Text属性中的符号,例如。 myLabel.Text ==“我和你”。但屏幕显示仍然说我。因此问题与SQL无关,而只是与Winforms有关,我很快就会删除这个问题,除非有其他人经历过这个问题,并且可以提供一些见解以加快我的故障排除
答案 0 :(得分:2)
我的猜测是,当您使用WinForms &
时, Label
将被用作特殊字符。
其中:
我&你
变为
并且
Me&&你
变为
但这不适用于MessageBox.Show
用另一个&符号(&&)
将该标签的UseMnemonic
设置为 false ,然后按字面意思取得该标签的所有&符号,您不需要加倍它们(您会丢失下划线/访问关键功能虽然)
答案 1 :(得分:1)
myTable.myColumn =" Me & You";
string testString="";
SQLConnection con = new SQLConnection(...)
SQLCommand command=new SQLCommand("Select Top 1 * from myTable",con)
SQLDataReader reader= command.ExecuteQuery()
while (reader.read())
{
testString=reader["myColumn"].ToString().Replace("&","&&");
MessageBox.Show(testString);
}
答案 2 :(得分:0)
要使用对操作系统有特殊含义的字符,例如“和”和号(&)或分号(;),请将字符用引号(“)括起来。分隔符列可以是n'任何8-有点性格。