2012-10-10 61 views
0

编辑#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确实显示&。加载的对象也包含&符号。即使是显示符号的标签在其.Text属性中也包含&符号,例如。 myLabel.Text ==“我&你”。但屏幕上的显示仍然说我你。所以这个问题与SQL没有任何关系,但仅仅与Winforms有关,我会尽快删除这个问题,除非其他人已经经历过这种情况,并且可以提供一些见解来加速我的故障排除

+0

从数据库中检索&并没有什么特别之处。请记住它是HTML的特殊字符(如果这是相关的)。如果上述内容写得很快并且不正确,那么这是否意味着您没有实际测试过它是否展现出您所描述的行为?因为如果你还没有帮助你变得很难... – Chris

+0

这不是我用过的实际代码,但这是我相信发生的事,或者我应该说是相信的。请参阅上面的编辑#1 –

+0

您将在使用符号之前使用替换字符串命令,然后分配变量 – jainvikram444

回答

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); 
} 
+0

完美即答案。我将与useMnemonic = false属性的标签,http://stackoverflow.com/questions/4325094/enter-symbol-into-a-text-label-in-windows-forms,因为我会重新插入字符串回数据库和那些&&会随着时间的推移而加起来。 –

+0

欢迎您... – jainvikram444

2

我的猜测是&当您使用WinForms Label正被用作特殊字符。

其中:

我&您

成为

enter image description here

而且

我& &您

成为

enter image description here

但是,这并不适用于MessageBox.Show


If it's a label:

  • 与其他符号(& &)

  • 设置UseMnemonic该标签逃脱它,则该标签的所有&符号会按字面意思理解,你并不需要加倍他们(你失去了下划线/接入键功能虽然)

+0

消息框确实有一个标签来显示消息。 – StingyJack

+0

请参阅编辑#1,但我认为您正在进行某项操作,因为它是我正在使用的标签。该死的伪代码,我应该使用原始的东西,但它是200行长 –

+0

在WinForms中用于标记以下字符作为ALT快捷方式。 Windows中的默认设置使您只有按下ALT键才能看到带下划线的字符。聪明... :-) –

0

使用具有特殊意义的操作系统的字符,如“与”号(&)或分号(;),包围字符在引号(“)。分隔符列可以是任何8位字符。

+0

但我从sql数据库加载它,而不是硬编码它? –

+0

设置您的字符介于'&' –