正确使用阅读器从ms访问数据库中获取数据

时间:2014-02-16 12:55:40

标签: c# ms-access messagebox

先生,天啊!我能够使用阅读器从我的数据库中调用数据,在获取数据库中的数据后,当我得到我的预期数据时,它们将出现一个messageBox。这是我的示例代码:

if (textBox5.Text == "")
        { }
        else
        {
            DialogResult ms = MessageBox.Show("Try Again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            if (ms == DialogResult.OK)
            {
                textBox5.Clear();
                textBox1.Clear();
                listBox5.Items.Clear();
                textBox3.Clear();
                listBox4.Items.Clear();
            }

        }

        while (reader.Read())
        {
            listBox4.Items.Clear();
            if (string.Compare(label1.Text, reader.GetString(0)) == 0)
            {
                for (int t = 1; t < 11; t++)
                {
                    words.Add(reader.GetString(t));
                }
            }
            words.Shuffle();
            listBox4.Items.AddRange(words.ToArray());
        }
        reader.Close();
        coon.Close();

我的问题是,当我应用这些代码时,会出现两个messageBox,所以我删除了这些代码:

                textBox5.Clear();
                textBox1.Clear();
                listBox5.Items.Clear();
                textBox3.Clear();
                listBox4.Items.Clear();

我想要的只是我想要一次显示messageBox。你可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您没有显示足够的代码,但我将假设此函数位于TextChanged事件中。

如果是这种情况,您正在检查TextBox5是否有某些文字,那么您正在清除表单上的一些控件。你没有展示其他事件以及他们做了什么,所以现在很难告诉你更多。

考虑调试代码并逐行逐步执行,这样您就可以按照程序流程的逻辑来查看打嗝的发生位置......

我也会更改前3行:

if (textBox5.Text == "")
    { }
    else

with if (!string.IsNullOrEmpty(this.textBox5.Text.Trim())),这意味着,如果string不为空(确切为null或空)。

希望这有帮助。
祝你好运