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 == "私とあなた". しかし、画面への表示にはまだ Me you と表示されます。問題はSQLとは関係ありませんが、単にWinformsと関係があるため、他の誰かがこれを経験し、トラブルシューティングを迅速化するための洞察を提供できない限り、この質問をすぐに削除する可能性があります

4

3 に答える 3

2

私の推測では&、 WinForms を使用するときに特殊文字として使用されていますLabel

どこ:

私とあなた

になる

ここに画像の説明を入力

私とあなた

になる

ここに画像の説明を入力

しかし、それはAには当てはまりませんMessageBox.Show


ラベルの場合:

  • 別のアンパサンド (&&) でエスケープします。

  • UseMnemonicそのラベルをfalseに設定すると、そのラベルのすべてのアンパサンドが文字どおりに解釈され、それらを 2 倍にする必要がなくなります (ただし、下線/アクセス キー機能は失われます)。

于 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

「and」アンパサンド (&) やセミコロン (;) など、オペレーティング システムにとって特別な意味を持つ文字を使用するには、その文字を引用符 (") で囲みます。セパレータ列には、任意の 8 ビット文字を使用できます。

于 2012-10-10T13:21:25.650 に答える