0

编辑#2

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

在 Windows 窗体中的文本标签中输入“&”符号?

那是问题的答案,结果是重复的

这是原来的

我目前正在使用 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有关,我可能会很快删除这个问题,除非其他人经历过这个并且可以提供一些见解来加快我的故障排除

4

3 回答 3

2

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

在哪里:

我你

变成

在此处输入图像描述

我你

变成

在此处输入图像描述

但这不适用于MessageBox.Show


如果是标签:

  • 使用另一个 & 符号 (&&) 转义它

  • 将该标签设置UseMnemonicfalse,然后该标签的所有&符号将按字面意思使用,您不需要将它们加倍(尽管您会丢失下划线/访问键功能)

于 2012-10-10T13:19:35.360 回答
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);
}
于 2012-10-10T13:24:28.583 回答
0

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

于 2012-10-10T13:21:25.650 回答