c # сбивает с толку на петле - PullRequest
0 голосов
/ 29 декабря 2010
MessageBox.Show(urls[m]);

кода под ним показывают 16 раз как a, a, a, a, b, b, b, b, b, c, c, c, c, d, d, d, d как я могу добавить4 не повторяется до URL [м].Мой код предназначен для открытия URL из базы данных, чтобы открыть его в 4 разных браузерах browser1 2, но в браузере показывать один и тот же URL

namespace tabcontrolweb
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

         }


        private void Form1_Load(object sender, EventArgs e)
        {
            string MyConString = "SERVER=192.168.0.78;" +
                 "DATABASE=webboard;" +
                 "UID=aimja;" +
                 "PASSWORD=aimjawork;" +
                 "charset=utf8;";
            MySqlConnection connection = new MySqlConnection(MyConString);
            MySqlCommand command = connection.CreateCommand();
            MySqlDataReader Reader;
            command.CommandText = "SELECT  urlwebboard FROM `listweb` WHERE `urlwebboard` IS NOT NULL AND ( `webbordkind` = 'เว็บท้องถิ่น' ) and `nourl`= 'n' order by province, amphore limit 4 ";
            connection.Open();
            Reader = command.ExecuteReader();


            string[] urls = new string[4];
            string thisrow = "";
            string sumthisrow = "";

            while (Reader.Read())
            {
                thisrow = "";

                for (int i = 0; i < Reader.FieldCount; i++)
                {
                    thisrow += Reader.GetValue(i).ToString();


                    System.IO.File.AppendAllText(@"C:\file.txt", thisrow + " " + Environment.NewLine);
                    sumthisrow = Reader.GetValue(i).ToString();

                }

                for (int m = 0; m < 4 ; m++)
                {
                    urls[m] = sumthisrow;
                    MessageBox.Show(urls[m]);          
                }

                webBrowser1.Navigate(new Uri(urls[0]));
                webBrowser1.Dock = DockStyle.Fill;
                webBrowser2.Navigate(new Uri(urls[1]));
                webBrowser2.Dock = DockStyle.Fill;
                webBrowser3.Navigate(new Uri(urls[2]));
                webBrowser3.Dock = DockStyle.Fill;
                webBrowser4.Navigate(new Uri(urls[3]));
                webBrowser4.Dock = DockStyle.Fill;


            }



            connection.Close();


        }

1 Ответ

0 голосов
/ 29 декабря 2010

Я не могу понять этот код:

for (int m = 0; m < 4 ; m++)
{
   urls[m] = sumthisrow;
   MessageBox.Show(urls[m]);          
}

Почему вы вставляете в URL [m] одно и то же значение? Помните, что в предыдущем цикле переменная sumthisrow будет сохранять только последнее значение, например:

sumthisrow = Reader.GetValue(Reader.FieldCount - 1).ToString();

EDIT : также рассмотрите возможность использования StringBuilder для создания переменной thisrow .


РЕДАКТИРОВАТЬ 2 : поместите ваши одноразовые предметы в оператор использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...