showdialog问题

神棍 2009-12-19 01:01:05
制作一个通讯录管理系统,但是当我点击查询按钮时,用showdialog开启的窗口直接关闭,没有任何提示信息。为此我在其中添加MessageBox,发现查询后可以显示,但是一点击MessageBox,窗口还是自动关闭,这是为什么?
代码如下
 private void button1_Click(object sender, EventArgs e)
{
string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=Addresslist.mdb";
OleDbConnection myconn = new OleDbConnection(strconn);
try
{
if (textBox15.Text != "")
{
myconn.Open();
string strcomm = "select * from record where xm='" + textBox15.Text.Trim() + "'";
OleDbCommand mycomm = new OleDbCommand(strcomm, myconn);
OleDbDataReader myreader = mycomm.ExecuteReader();
if (myreader.Read())
{
textBox1.Text = myreader.GetString(1);
textBox2.Text = myreader.GetString(4);
textBox3.Text = myreader.GetString(5);
textBox4.Text = myreader.GetString(6);
textBox5.Text = myreader.GetString(7);
textBox6.Text = myreader.GetString(8);
textBox7.Text = myreader.GetString(9);
textBox8.Text = myreader.GetString(10);
textBox9.Text = myreader.GetString(2);

if (myreader.GetString(11) != "")

pictureBox1.Image = Image.FromFile(myreader.GetString(11));

else
pictureBox1.Image = Image.FromFile("7.jpg");

MessageBox.Show("不存在此记录", "提示信息");
}
else
{
MessageBox.Show("不存在此记录", "提示信息");
textBox15.Text = "";
textBox15.Focus();
}
}
else
{
MessageBox.Show("查找信息不能空", "提示信息");
textBox15.Focus();

}


}

catch (OleDbException ex)
{

MessageBox.Show(ex.Message, "提示信息");
MessageBox.Show(myconn.State.ToString(), "提示信息");
}

}
...全文
212 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guatoujiangyou 2009-12-20
  • 打赏
  • 举报
回复
设个断点 调试下,好多问题都 需要靠自己搞定 呵呵,看代码难,做调试容易!!!!
调试调试~~~~
tianliang1 2009-12-19
  • 打赏
  • 举报
回复
up
神棍 2009-12-19
  • 打赏
  • 举报
回复
使用show打开窗口查询后是不会关闭的,但是showdialog却有这个问题。
还是等待高手解释下。
arit11 2009-12-19
  • 打赏
  • 举报
回复
我刚刚用两个窗体做了一下,但是没有连接数据 感觉不应该出问题 挺奇怪的 高手看下吧
神棍 2009-12-19
  • 打赏
  • 举报
回复
顶起使之不沉。
神棍 2009-12-19
  • 打赏
  • 举报
回复
我的查询窗口是用showdialog打开的,当我改成show打开时就没有这个问题,我主要问的是如何在showdialog解决这个问题。
神棍 2009-12-19
  • 打赏
  • 举报
回复
是查询窗口直接退出。
我是要点击了查询然后再查询窗口的下面显示查询后的内容,但是一点击查询按钮查询窗口就关闭了。
本来不需要messagebox的,用messagebox发现可以停止,而且查询的内容也能显示,但是点击messagebox后窗口又关闭了。
arit11 2009-12-19
  • 打赏
  • 举报
回复
你程序里是不是建立两个Windows窗体,当在一个里面点击时候,另外一个就会窗体出现,供用户输入数据来查找,就会用messagebox.show()来提示用户。你说的是第一个窗体退出,还是那个查询窗体直接退出了?
KylinBL 2009-12-19
  • 打赏
  • 举报
回复
学习~
神棍 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arit11 的回复:]
查询一次后,这个代码不就结束了吗 可以在messageBox.show()中添加参数,当用户点击确定或取消时候,再次回到主窗体。  我想应该是这样吧  我也是刚学 就当学习了 帮你顶下
[/Quote]
对啊,我也是这么想的,但是怎么实现不知道。希望高手帮下。
arit11 2009-12-19
  • 打赏
  • 举报
回复
查询一次后,这个代码不就结束了吗 可以在messageBox.show()中添加参数,当用户点击确定或取消时候,再次回到主窗体。 我想应该是这样吧 我也是刚学 就当学习了 帮你顶下
神棍 2009-12-19
  • 打赏
  • 举报
回复
还有就是这个按钮所在的FORM是另一个FORM用showdialog打开的。
神棍 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lvxianda 的回复:]
if (myreader.GetString(11) != "")

                            pictureBox1.Image = Image.FromFile(myreader.GetString(11));

                        else
                            pictureBox1.Image = Image.FromFile("7.jpg");

                        MessageBox.Show("不存在此记录", "提示信息");
这个messagebox 应该放到else里面吧
而且这段代码只有 一个按钮事件 貌似没啥问题
[/Quote]
messagebox这个是为了停止,否则一点击按钮窗口就关闭了。
lvxianda 2009-12-19
  • 打赏
  • 举报
回复
if (myreader.GetString(11) != "")

pictureBox1.Image = Image.FromFile(myreader.GetString(11));

else
pictureBox1.Image = Image.FromFile("7.jpg");

MessageBox.Show("不存在此记录", "提示信息");
这个messagebox 应该放到else里面吧
而且这段代码只有 一个按钮事件 貌似没啥问题

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧