Member 3080470 Ответов: 1

В формах C# форма заполняется даже без написания кода


Привет
Я пишу программу для создания системного трея для всплывающих сообщений.

в программе я проверяю, является ли он действительным пользователем, после чего будет отображаться уведомление

еще

уведомление не будет отображаться.

Но если у пользователя(код пользователя) нет собрания, то появляется всплывающее окно с пустым уведомлением.

Я хочу скрыть сообщение уведомления.

Пожалуйста, помогите мне.

Я написал код

using (SqlConnection CNN = new SqlConnection(AppManager.GetConnectionString()))
                    {
                        CNN.Open();
                        //getting all records from Meeting

                        using (SqlCommand scmd = new SqlCommand())
                        {

                            using (DataTable dtMeeting = new DataTable())
                            {

                                scmd.CommandText = "SELECT MeetingNumber from Meeting";

                                scmd.Connection = CNN;
                                SqlDataAdapter sdaMeeting = new SqlDataAdapter(scmd);
                                sdaMeeting.Fill(dtMeeting);


                                foreach (DataRow drMeeting in dtMeeting.Rows)
                                {

                                    using (DataTable dtAttendies = new DataTable())
                                    {
                                        scmd.CommandText = "SELECT MEETING.MeetingNumber, MEETING.MeetingType," +
                                          " MEETINGTYPEMASTER.MeetingTypeName, MEETING.MeetingName,MEETING.Location," +
                                          " MEETING.StartTime, MEETING.EndTime, MEETINGATTENDEES.AttendeeType," +
                                           
                                          " MEETING.Prepared, MEETING.PreparedBy, MEETING.PreparedDateTime," +
                                          " MEETING.BranchCode" +
                                          " FROM MEETING, MEETINGTYPEMASTER, EMPLOYEEMASTER ,MEETINGATTENDEES," +
                                          " DESIGNATIONMASTER, DEPARTMENTMASTER,USERMASTER" +
                                          " Where MEETING.MeetingType=MEETINGTYPEMASTER.MeetingTypeCode" +
                                          " And EMPLOYEEMASTER.EmployeeCode=MEETINGATTENDEES.EmployeeCode" +
                                          " And EMPLOYEEMASTER.DepartmentCode=DEPARTMENTMASTER.DepartmentCode" +
                                          " And EMPLOYEEMASTER.DesignationCode=DESIGNATIONMASTER.DesignationCode" +
                                          " And MEETING.BranchCode=xxx" +
                                          " And MEETING.MeetingNumber=MEETINGATTENDEES.MeetingNumber" +
                                          " And MEETING.MeetingNumber= " + drMeeting["MeetingNumber"] + "" + //This meeting number coming from outer loop
                                          " And EMPLOYEEMASTER.EmployeeCode=USERMASTER.EmployeeCode" +
                                          " And USERMASTER.UserCode=2";//User code

                                        scmd.Connection = CNN;
                                        SqlDataAdapter sdaAttendies = new SqlDataAdapter(scmd);
                                        sdaAttendies.Fill(dtAttendies);
                                        if (dtAttendies.Rows.Count != 0)
                                        {                                          
                                            foreach (DataRow drAttendies in dtAttendies.Rows)
                                            {
                                                lblMeetingType.Text = dtAttendies.Rows[0]["MeetingTypeName"].ToString();
                                                lblMeetingName.Text = dtAttendies.Rows[0]["MeetingName"].ToString();
                                            }
                                        }
                                        else
                                        {     // if the user code has no meeting still the blank popup is coming                                     
                                           //Here no code is given  but still the notification popup is coming

                                        }
                                    }
                                }
                            }
                        }

                    }
                    this.Close();
                }                
             
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            }      
        private void Form1_Resize(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Minimized)
            {
                ShowInTaskbar = false;
                notifyIcon1.Visible = true;
                notifyIcon1.ShowBalloonTip(1000);
            }
        }
 private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ShowInTaskbar = true;
            notifyIcon1.Visible = false;
            WindowState = FormWindowState.Normal;            
        }    public Form1()
        {
            InitializeComponent();          
           
        }                              
 static class Program
    {
              [STAThread]
        static void Main()
        {            
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
          }


Я не могу исправить ошибку.

Пожалуйста, помогите мне не отображать уведомление

Спасибо

Рама

Что я уже пробовал:

Я хочу скрыть окно уведомлений, которое отображается, даже если записи там нет

1 Ответов

Рейтинг:
2

OriginalGriff

Это странный код:

foreach (DataRow drAttendies in dtAttendies.Rows)
 {
     lblMeetingType.Text = dtAttendies.Rows[0]["MeetingTypeName"].ToString();
     lblMeetingName.Text = dtAttendies.Rows[0]["MeetingName"].ToString();
 }
Зачем каждый раз циклически записывать одни и те же данные?

Однако это не проблема, с которой вы столкнулись: скорее всего, это ваши данные, и у нас нет к ним доступа.
Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Как вы его используете, зависит от вашей системы компилятора, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.

Поставьте точку останова на линии:
if (dtAttendies.Rows.Count != 0)

И запустите свой код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!