C# 插入a&;贴上标签

C# 插入a&;贴上标签,c#,winforms,C#,Winforms,编辑#2 我更改了标题名,因为它不再代表 我要问的问题。原来我的问题是显示& c#winforms标签中的符号 这就是问题的答案,结果是重复的 这是原作 我目前正在使用c#和sql。写入数据库没有问题,当我使用MS SQL Server Manager检查字段时,我可以在varchar字段中看到&符号。但是当我用c#检索它时,它似乎被省略了 myTable.myColumn =" Me & You"; string testString=""; SQLConnection con =

编辑#2

我更改了标题名,因为它不再代表 我要问的问题。原来我的问题是显示& c#winforms标签中的符号

这就是问题的答案,结果是重复的

这是原作

我目前正在使用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属性中保留了&symbol,例如myLabel.Text==“我和你”。但是屏幕上的显示仍然告诉我你。所以这个问题与SQL无关,而只是与Winforms有关,我可能会很快删除这个问题,除非有其他人经历过这种情况,并且能够提供一些见解来加快我的故障排除

否则我的猜测是,
&
在使用WinForms
标签时被用作特殊字符

其中:

我和你

变成

我和你

变成

但这不适用于
MessageBox.Show


  • 用另一个符号(&&)将其转义

  • 将该标签设置为false,则该标签的所有符号都将按字面意思表示,您无需将其加倍(但会丢失下划线/访问关键功能)


我的猜测是,当您使用WinForms
标签时,
&
被用作特殊字符

其中:

我和你

变成

我和你

变成

但这不适用于
MessageBox.Show


  • 用另一个符号(&&)将其转义

  • 将该标签设置为false,则该标签的所有符号都将按字面意思表示,您无需将其加倍(但会丢失下划线/访问关键功能)



要使用对操作系统有特殊意义的字符,如“and”和(&)或分号(;),请将字符括在引号(“)。分隔列可以是任意8位字符。

要使用对操作系统有特殊意义的字符,如“and”和(&)或分号(;),将字符括在引号(“)中。分隔符列可以是任意8位字符。

从数据库中检索&应该没有什么特别之处。请记住,它是HTML的一个特殊字符(如果相关的话)。如果上面的内容写得很快,但不正确,这是否意味着您没有实际测试它是否显示您所描述的行为?因为如果你没有帮助你,那么帮助你就变得非常困难…这不是我使用的实际代码,但这是我相信发生的事情,或者我应该说是相信的。请参阅上面的编辑#1,在分配之前,您将使用替换字符串命令在符号之前使用\beforevariable@vikramjain对不起,我不明白那句话…@K'Leg:这正是我做出那句话的原因。我怀疑上面的代码会起作用。通常,在尝试制作(和测试)一个最小的测试用例(即再现问题的最小代码)时,您会发现关于问题的更多信息。从数据库中检索&应该没有什么特别的。请记住,它是HTML的一个特殊字符(如果相关的话)。如果上面的内容写得很快,但不正确,这是否意味着您没有实际测试它是否显示您所描述的行为?因为如果你没有帮助你,那么帮助你就变得非常困难…这不是我使用的实际代码,但这是我相信发生的事情,或者我应该说是相信的。请参阅上面的编辑#1,在分配之前,您将使用替换字符串命令在符号之前使用\beforevariable@vikramjain对不起,我不明白那句话…@K'Leg:这正是我做出那句话的原因。我怀疑上面的代码会起作用。通常,在尝试制作(和测试)一个最小的测试用例(即再现问题的最小代码)时,您会发现有关问题的更多信息。消息框中确实有一个标签来显示消息。请参阅编辑#1,尽管我认为您了解一些内容,因为我正在使用该标签。该死的psuedo代码,我应该使用原始的东西,但它有200行长&在WinForms中,它用于将以下字符标记为ALT快捷方式。Windows中的默认设置使您只能在按ALT键时看到带下划线的字符。聪明…:-)那么,我如何从包含&symbol的数据库中获取加载的字符串并将其放入标签消息框中确实有一个标签来显示消息。请参见编辑#1,尽管我认为您了解一些内容,因为我正在使用标签。该死的psuedo代码,我应该使用原始的东西,但它有200行长&在WinForms中,它用于将以下字符标记为ALT快捷方式。Windows中的默认设置使您只能在按ALT键时看到带下划线的字符。聪明…:-)那么,如何从包含&符号的数据库中加载字符串并将其放入Label中呢?但我是从sql数据库中加载的,而不是硬编码的?将您的字符设置为“&”,但我是从sql数据库中加载的,而不是硬编码的?将您的字符设置为“&”,这就是答案。我将使用标签的UseMemonic=false属性,因为我将重新插入
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);
}