private void 新增ToolStripButton_Click(object sender, EventArgs e)
        {//新增水电气费
            string MyAddInfo = "现在将新增指定月份的水电气费数据,是否继续?";
            if (MessageBox.Show(MyAddInfo, "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult .No )(这里是我的问题为什么是DialogResult .No 而不是DialogResult .Yes)
            {
                return;
            }
            String MySQLConnectionString = global::MyCommunity.Properties.Settings.Default.DBCommunityConnectionString;
            SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
            MyConnection.Open();
            string MySQL = "Select Count(*) From 水电气费 WHERE 计费年份=" + this.计费年份ToolStripComboBox.Text + " AND 计费月份=" + this.计费月份ToolStripComboBox.Text + " AND 费用类型='" + this.费用类型ToolStripComboBox.Text + "' AND 楼栋名称='" + this.楼栋名称ToolStripComboBox.Text+ "'";
            SqlCommand MyCommand = MyConnection.CreateCommand();
            MyCommand.CommandText = MySQL;
            string MyCount = MyCommand.ExecuteScalar().ToString();
            if (Convert.ToInt16(MyCount) == 0)
            {//插入新月份费用的业主基本信息
                MySQL = "INSERT INTO 水电气费 (楼栋名称,业主编号,业主姓名) SELECT 楼栋名称,业主编号,业主姓名 FROM 业主信息 WHERE (业主编号 NOT IN (SELECT 业主编号 FROM dbo.迁出信息)) AND (楼栋名称='" + this.楼栋名称ToolStripComboBox.Text + "')";
                MyCommand.CommandText = MySQL;
                MyCommand.ExecuteNonQuery();
                MySQL = "UPDATE 水电气费 SET 登记标志='正在登记',费用类型='" + this.费用类型ToolStripComboBox.Text + "',计费年份=" + this.计费年份ToolStripComboBox.Text + ",计费月份=" + this.计费月份ToolStripComboBox.Text+ " WHERE 登记标志 IS NULL";
                MyCommand.CommandText = MySQL;
                MyCommand.ExecuteNonQuery();
                int MyLastMonth = Convert.ToInt16(this.计费月份ToolStripComboBox.Text) - 1;
                int MyLastYear = Convert.ToInt16(this.计费年份ToolStripComboBox.Text);
                if (MyLastMonth == 0)
                {
                    MyLastMonth = 12;
                    MyLastYear = Convert.ToInt16(this.计费年份ToolStripComboBox.Text) - 1;
                }
                //将上月止数作为新月份底数
                MySQL = "Select 楼栋名称,业主编号,业主姓名,计费年份,计费月份,费用类型,表编号,表底数,表止数,计费单价 FROM 水电气费 WHERE 计费年份=" + MyLastYear.ToString() + " AND 计费月份=" + MyLastMonth.ToString() + " AND 费用类型='" + this.费用类型ToolStripComboBox.Text + "' AND 楼栋名称='" + this.楼栋名称ToolStripComboBox.Text+ "' AND 登记标志='完成登记'";
                DataTable MyComputeTable = new DataTable();
                SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
                MyAdatper.Fill(MyComputeTable);
                foreach (DataRow MyRow in MyComputeTable.Rows)
                {
                    string My楼栋名称 = MyRow[0].ToString();
                    string My业主编号 = MyRow[1].ToString();
                    string My业主姓名 = MyRow[2].ToString();
                    string My计费年份 = MyRow[3].ToString();
                    string My计费月份 = MyRow[4].ToString();
                    string My费用类型 = MyRow[5].ToString();
                    string My表编号 = MyRow[6].ToString();
                    string My表底数 = MyRow[7].ToString();
                    string My表止数 = MyRow[8].ToString();
                    string My计费单价 = MyRow[9].ToString();
                    MySQL = "UPDATE 水电气费 SET 表编号='" + My表编号 + "',表底数=" + My表止数 + ",计费单价=" + My计费单价 + " WHERE 计费年份=" + this.计费年份ToolStripComboBox.Text + " AND 计费月份=" + this.计费月份ToolStripComboBox.Text + " AND 费用类型='" + this.费用类型ToolStripComboBox.Text + "' AND 楼栋名称='" + this.楼栋名称ToolStripComboBox.Text + "' AND 业主编号='" + My业主编号 + "'";
                    MyCommand.CommandText = MySQL;
                    MyCommand.ExecuteNonQuery();
                }
            }
            if (MyConnection.State == ConnectionState.Open)
            {
                MyConnection.Close();
            }
            try
            {
                this.水电气费TableAdapter.Fill(this.dBCommunityDataSet.水电气费, 楼栋名称ToolStripComboBox.Text, new System.Nullable<int>(((int)(System.Convert.ChangeType(计费年份ToolStripComboBox.Text, typeof(int))))), new System.Nullable<int>(((int)(System.Convert.ChangeType(计费月份ToolStripComboBox.Text, typeof(int))))), 费用类型ToolStripComboBox.Text, "正在登记");
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
他弹出的对话框是 点击是的时候就新增了
我感觉应该是点击否啊
哪位高手指点一下谢谢!

解决方案 »

  1.   

     if (MessageBox.Show(MyAddInfo, "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult .No )(这里是我的问题为什么是DialogResult .No 而不是DialogResult .Yes)
      {
      return;
      }
    点否就进if了, 进if就return了 return 后面还怎么运行?
      

  2.   

    当点击No后 ,return............就不执行下面的代码啦
      

  3.   

    函数体if(){ return; }后面的语句是点Yes的时候才会执行的,点No就不执行
    这是正常的逻辑啊!
      

  4.   

    现在将新增指定月份的水电气费数据,是否继续?点Yes,当然就新增咯~~
      

  5.   

    你想让Yes就Yes,想让它No就No了
      

  6.   

     if (MessageBox.Show(MyAddInfo, "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult .No )(这里是我的问题为什么是DialogResult .No 而不是DialogResult .Yes)
    No 了就是不继续了  当然return了
      

  7.   

    if (MessageBox.Show(MyAddInfo, "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult .Yes)
      {  }
    else
       return;
      

  8.   

    首先把注意力放在这里:
      string MyAddInfo = "现在将新增指定月份的水电气费数据,是否继续?";
      if (MessageBox.Show(MyAddInfo, "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult .No )(这里是我的问题为什么是DialogResult .No 而不是DialogResult .Yes)
      {
      return;
      }逻辑中做了反面判断,即:当用户点击了对话框中“否”按钮时,任何后续逻辑不再被执行。对话框中的提示为询问用户是否继续,既然用户选择了“否”,那么以后任何的执行都该终止。关键字 return 的作用就是这个意思。
      

  9.   

    嗯~谢谢
    是return的这个我一直忽略了