c#在循环中混乱

时间:2010-12-29 09:47:24

标签: c# arrays c#-4.0

MessageBox.Show(urls[m]);

下面的代码显示16个时间像a,a,a,a,b,b,b,b,c,c,c,c,d,d,d,d我怎么能添加4个非重复到网址[m]。我的代码的目的是从数据库swlwct 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 :(得分:0)

我无法理解这段代码:

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

为什么在urls [m]中插入相同的值? 请记住,在上一个循环中,变量 sumthisrow 将仅保留最后一个值,如下所示:

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

编辑:还可以考虑使用StringBuilder创建 thisrow 变量。


编辑2 :将您的一次性物品放入使用声明中。