0

以下のコードを実行すると、次のような結果が得られます。これには、セミコロンがなく、richtextbox の各行に 1 つの改行が含まれています。最後の行には2つのセミコロンがあります....各行をセミコロンで終わらせ、その後リッチテキストボックスに1行スペースを空ける方法はありますか?

using (OracleCommand crtCommand = new OracleCommand(myCommand, conn1))
{
    using (OracleDataReader reader = crtCommand.ExecuteReader())
    {
         while (reader.Read())
         {
             if (!reader.IsDBNull(0))
             {
                 richTextBox1.AppendText(Environment.NewLine);
                 richTextBox1.AppendText(reader[0].ToString().TrimEnd('\r', '\n', ' ') + ";");
                 richTextBox1.AppendText(Environment.NewLine);
             }
         }
     }
 }

結果:

ALTER TABLE "TBL_A" ADD ("FIELD_A3" DATE)

ALTER TABLE "TBL_A" DROP ("FIELD_A6")

ALTER TABLE "TBL_A" MODIFY ("FIELD_A2" VARCHAR2(50))

ALTER TABLE "TBL_A" MODIFY ("FIELD_A4" NUMBER(5,2) DEFAULT 0)

ALTER TABLE "TBL_A" MODIFY ("FIELD_A4" NULL)

ALTER TABLE "TBL_A" MODIFY ("FIELD_A5" NOT NULL ENABLE);

;

期待される結果:

ALTER TABLE "TBL_A" ADD ("FIELD_A3" DATE);

ALTER TABLE "TBL_A" DROP ("FIELD_A6");

ALTER TABLE "TBL_A" MODIFY ("FIELD_A2" VARCHAR2(50));

ALTER TABLE "TBL_A" MODIFY ("FIELD_A4" NUMBER(5,2) DEFAULT 0);

ALTER TABLE "TBL_A" MODIFY ("FIELD_A4" NULL);

ALTER TABLE "TBL_A" MODIFY ("FIELD_A5" NOT NULL ENABLE);
4

4 に答える 4

0

これにより、望ましい結果が得られると思います。

richTextBox1.AppendText(string.Format("{0} ;\r\n" + Environment.NewLine, reader[0]));

ここでは、文字列全体をフォーマットし、オブジェクトと目的の文字を追加し、すべてのプロセスを 1 行に変換しています。これにより、コードは次のようになります。

if (!reader.IsDBNull(0))
{
     richTextBox1.AppendText(string.Format("{0} ;\r\n" + Environment.NewLine, reader[0]));         
}
于 2013-07-24T23:34:19.190 に答える
0

ここにいる他の全員が正しいと仮定すると、実行する必要があるRead()操作は 1 つだけです。質問のタイトルに対する正確な回答ではありませんが、おそらく必要なものです。

OracleDataReader明確にするために、以下のコードを使用するのは間違っていると思いますRead().

        using (OracleCommand crtCommand = new OracleCommand(myCommand, conn1))
        {
            using (OracleDataReader reader = crtCommand.ExecuteReader())
            {
                reader.Read();
                string[] splitted = reader[0].ToString().Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

                foreach (string line in splitted)
                {
                    richTextBox1.AppendText(Environment.NewLine + line.Trim() + ";" + Environment.NewLine);
                }
            }
        }
于 2013-07-24T17:41:42.050 に答える
0

次のことを試して、それが機能するかどうかを確認できます。

using (OracleCommand crtCommand = new OracleCommand(myCommand, conn1))
                    {
                        using (OracleDataReader reader = crtCommand.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                if (!reader.IsDBNull(0))
                                {
                                    richTextBox1.AppendText(string.Format("{0}{1}{2}{3}", Environment.NewLine, reader[0].ToString().TrimEnd('\r', '\n', ' '),";", Environment.NewLine));

                                }
                            }
                        }

                    }
于 2013-07-24T16:02:12.857 に答える