首页 新闻 会员 周边

winform窗体提示:值不在预期的范围内

0
悬赏园豆:100 [待解决问题]

1、这个窗体之前好好的,在我引用gonggongbianliang.YongHuMing.yongHuMing增加判断筛选后,就一直报这个错。我把所有关于这个变量的都去掉,再保存窗体仍然提示。
2、点击运行,程序运行正常,没有问题。
3、各位大佬,路过的帮忙看下,问题到底出在哪里?先拜谢了!
4、写的糙,变量名啥的别吐槽,大佬。这个软件我只是为工作方便自己开发的,方便自己维护打理。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using PiaoWu.GongGongChuangTi;
using PiaoWu.GongGongLei;

namespace PiaoWu.YWGL
{
    public partial class WenHuaHuiMin : Form
    {
        private static WenHuaHuiMin whhm;
        private WenHuaHuiMin()
        {
            InitializeComponent();
        }


        public static WenHuaHuiMin ChuangJianWHHM()
        {
            if (whhm==null||whhm.IsDisposed)
            {
                whhm = new WenHuaHuiMin();
            }
            return whhm;
        }

        private void BiaoShuaXin()
        {
            string strChaXun = $"select *from WenHuaHuiMin where 姓名 = '{GongGongBianLiang.YongHuMing.yongHuMing}' order by 订单日期 desc,演出日期 desc,票价 desc";
            TongYongGongNeng.BiaoDaYin(strChaXun, dataGridView1);
            string daiBan = $"select distinct 姓名,剧目名称,未完原因 from WenHuaHuiMin where 审核='0' and 姓名 = '{GongGongBianLiang.YongHuMing.yongHuMing}' ";
            TongYongGongNeng.BiaoDaYin(daiBan, dataGridView2);
        }

        private void SuoDingAnNiuZhuangTai()
        {
            string[] hangShuJu = TongYongGongNeng.HuoQuXuanZeHangShuJu(dataGridView1);
            if (hangShuJu.Length > 0)
            {
                TongYongGongNeng.HuiMinSuoDingAnNiuZhuangTai(hangShuJu[0], toolStripButton6);
            }
        }

        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            BiaoShuaXin();
            SuoDingAnNiuZhuangTai();
        }

        private void WenHuaHuiMin_Load(object sender, EventArgs e)
        {
            toolStripButton6.Visible = false;
            BiaoShuaXin();
            SuoDingAnNiuZhuangTai();
            groupBox3.Width = this.Width - groupBox3.Location.X * 2 - 10;
            groupBox3.Height = this.Height - groupBox3.Location.Y - 70;
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            TongYongGongNeng.DaoChu(dataGridView1);
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            bool panDuan = TongYongGongNeng.BiaoNeiShiFouYouShuJu(dataGridView1);
            if (panDuan == true)
            {
                string[] hangShuJu = TongYongGongNeng.HuoQuXuanZeHangShuJu(dataGridView1);
                if (hangShuJu[0] == "0")
                {
                    TongYongGongNeng.ShanChuHang("WenHuaHuiMin", "订单编号", hangShuJu[2], true);
                    BiaoShuaXin();
                    SuoDingAnNiuZhuangTai();
                }
                else
                {
                    MessageBox.Show("已审核出票的订单无法删除!");
                }
            }
            else
            {
                MessageBox.Show("表内无数据!");
            }

        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            kaiShiRiQi.Text = dateTimePicker1.Text.Trim();
        }

        private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
        {
            jieShuRiQi.Text = dateTimePicker2.Text.Trim();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            kaiShiRiQi.Text = null;
            jieShuRiQi.Text = null;
            BiaoShuaXin();
            SuoDingAnNiuZhuangTai();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text = null;
            comboBox1.Text = null;
            BiaoShuaXin();
            SuoDingAnNiuZhuangTai();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (kaiShiRiQi.Text.Trim() != "" && jieShuRiQi.Text.Trim() != "")
            {
                string strChaXun = $"select *from WenHuaHuiMin where 订单日期 between '{kaiShiRiQi.Text.Trim()}' and '{jieShuRiQi.Text.Trim()}' and 姓名 ='{GongGongBianLiang.YongHuMing.yongHuMing}' order by 订单日期 desc";
                TongYongGongNeng.BiaoDaYin(strChaXun, dataGridView1);
            }
            else
            {
                MessageBox.Show("开始日期与结束日期不能为空!");
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (comboBox1.Text.Trim() != "" && textBox1.Text.Trim() != "")
            {
                string s1 = comboBox1.Text.Trim();//拆分成多个字符串和字符串数组看是否提示“值不在预期的范围内”,结果不是这里的问题!
                string s11 = "姓名";
                string[] str1 = { s1, s11 };
                string s2 = textBox1.Text.Trim();
                string s22 = GongGongBianLiang.YongHuMing.yongHuMing;
                string[] str2 = { s2, s22 };
                TongYongGongNeng.ChaXun("WenHuaHuiMin", str1, str2, dataGridView1, true, "订单日期");
            }
            else
            {
                MessageBox.Show("查找项目与查找内容不能为空!");
            }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            SuoDingAnNiuZhuangTai();
        }

        private void dataGridView2_DoubleClick(object sender, EventArgs e)
        {
            string[] hangShuJu = TongYongGongNeng.HuoQuXuanZeHangShuJu(dataGridView2);
            bool panDuan = string.IsNullOrEmpty(hangShuJu[0]);
            if (panDuan == false)
            {
                string strChaXun = $"select *from WenHuaHuiMin where 审核 = '0' and 姓名 like '%{hangShuJu[0]}%' and 剧目名称 like '%{hangShuJu[1]}%' order by 订单日期 desc,演出日期 desc";

                TongYongGongNeng.BiaoDaYin(strChaXun, dataGridView1);
            }
        }

        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            bool panDuan = TongYongGongNeng.BiaoNeiShiFouYouShuJu(dataGridView1);
            if (panDuan == true)
            {
                string[] hangShuJu = TongYongGongNeng.HuoQuXuanZeHangShuJu(dataGridView1);
                string shenHe = hangShuJu[0] == "0" ? "确定出票" : "取消出票";
                DialogResult dr = MessageBox.Show($"您要\"{shenHe}\"员工:【{hangShuJu[5]}】剧目:【{hangShuJu[8]}】的惠民订单吗?", "提示", MessageBoxButtons.OK);
                if (dr == DialogResult.OK)
                {
                    string suoDingZhuangTai = "";
                    string weiWanYuanYin = "";
                    string riQi = "";

                    if (hangShuJu[0].Trim() == "0")
                    {
                        suoDingZhuangTai = "1";
                        weiWanYuanYin = "";
                        riQi = DateTime.Today.ToString();
                    }
                    else if (hangShuJu[0].Trim() == "1")
                    {
                        suoDingZhuangTai = "0";
                        weiWanYuanYin = "未出票";
                    }

                    string sqlXiuGai = $"update WenHuaHuiMin set 审核 = '{suoDingZhuangTai}',未完原因 ='{weiWanYuanYin}',出票日期 = '{riQi}'  where 订单编号 = '{hangShuJu[2]}'";
                    FuWuQiLianJie fwqlj = new FuWuQiLianJie();
                    int jianCha = fwqlj.ZhiXingZSG(sqlXiuGai);

                    BiaoShuaXin();
                    SuoDingAnNiuZhuangTai();
                }
            }
            else
            {
                MessageBox.Show("表内无数据!");
            }
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            bool panDuan = TongYongGongNeng.BiaoNeiShiFouYouShuJu(dataGridView1);
            if (panDuan==true)
            {
                string[] hangShuJu = TongYongGongNeng.HuoQuXuanZeHangShuJu(dataGridView1);
                if (hangShuJu[0]=="0")
                {
                    WenHuaHuiMin_G xiuGai = new WenHuaHuiMin_G(hangShuJu);
                    xiuGai.Text = "修改文化惠民订单";
                    xiuGai.ShowDialog();
                    if (xiuGai.DialogResult == DialogResult.OK)
                    {
                        BiaoShuaXin();
                        SuoDingAnNiuZhuangTai();
                    }
                }
                else
                {
                    MessageBox.Show("此笔订单已审核出票,无法修改!");
                }
            }
            else
            {
                MessageBox.Show("表内无数据!");
            }
            
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            WenHuaHuiMin_ZG xinJian = new WenHuaHuiMin_ZG();
            xinJian.Text = "新建文化惠民订单";
            xinJian.ShowDialog();
            if (xinJian.DialogResult == DialogResult.OK)
            {
                BiaoShuaXin();
                SuoDingAnNiuZhuangTai();
            }
        }
    }
}
追风千里的主页 追风千里 | 初学一级 | 园豆:106
提问于:2021-06-21 10:13
< >
分享
所有回答(4)
0

勾选允许不安全代码就可以了。。。

追风千里 | 园豆:106 (初学一级) | 2021-06-21 11:09
0

你第一条写的是不管 引不引用 你说的这个变量都会有异常,怎么到了第二条就说程序运行正常了?能准确描述一下在什么情况下是正常什么情况下异常吗?

Micro丶Organism | 园豆:205 (菜鸟二级) | 2021-06-22 09:28

1、不好意思,问题没有描述清楚。是在关闭“WenHuaHuiMin”窗体的设计面板和代码面板时出现的一个messagebox提示,而且无法关闭。
2、我在load增加断点,每个功能都试过,均没有发现问题。
3、在群里一个朋友说勾选允许不安全代码试一试,结果勾选上后就不再提示,代码面板和设计面板也可以正常关闭了。
4、奇怪的是,我想重现这个问题,截图给大家看看。取消勾选允许不安全代码后,没有提示了,设计面板和代码面板能正常关闭,就跟从来没有出现过这个问题似得。

支持(0) 反对(0) 追风千里 | 园豆:106 (初学一级) | 2021-06-23 08:16

@追风千里: 1.你的第一条描述是不是在调试环境下,在关闭窗体的时候跳出的异常消息弹窗呢?猜测是这样的,应该是在你关闭窗体之后有些资源异常导致的问题;
2.你在关闭窗体出现异常跟踪load方法,应该是没用的,要跟踪也是跟踪close事件方法,可以声明一个个close()方法,如下:

       private void WenHuaHuiMin_Close(object sender, EventArgs e)
        {
              //TODO
        }

3.不建议勾选不安全代码,尝试添加异常捕捉,特别熟数据库CURD操作,如下:

try
{
//TODO
}
Catch(Exception exc)
{
//TODO
}

4.可尝试在调试环境下再尝试问题是否可以复现,如果不能,那就木得办法了 0.0

支持(0) 反对(0) Micro丶Organism | 园豆:205 (菜鸟二级) | 2021-06-24 15:56
0

错误信息要发出来,

flyfishing | 园豆:943 (小虾三级) | 2021-06-22 13:32

1、不好意思,问题没有描述清楚。是在关闭“WenHuaHuiMin”窗体的设计面板和代码面板时出现的一个messagebox提示,而且无法关闭。
2、我在load增加断点,每个功能都试过,均没有发现问题。
3、在群里一个朋友说勾选允许不安全代码试一试,结果勾选上后就不再提示,代码面板和设计面板也可以正常关闭了。
4、奇怪的是,我想重现这个问题,截图给大家看看。取消勾选允许不安全代码后,没有提示了,设计面板和代码面板能正常关闭,就跟从来没有出现过这个问题似得。

支持(0) 反对(0) 追风千里 | 园豆:106 (初学一级) | 2021-06-23 08:17
0

debug方法,添加Console.writeLine(),看执行到哪步出现这个异常,一般来说可能是某些数类型转换出问题了

echo_lovely | 园豆:1437 (小虾三级) | 2021-06-22 17:39

1、不好意思,问题没有描述清楚。是在关闭“WenHuaHuiMin”窗体的设计面板和代码面板时出现的一个messagebox提示,而且无法关闭。
2、我在load增加断点,每个功能都试过,均没有发现问题。
3、在群里一个朋友说勾选允许不安全代码试一试,结果勾选上后就不再提示,代码面板和设计面板也可以正常关闭了。
4、奇怪的是,我想重现这个问题,截图给大家看看。取消勾选允许不安全代码后,没有提示了,设计面板和代码面板能正常关闭,就跟从来没有出现过这个问题似得。

支持(0) 反对(0) 追风千里 | 园豆:106 (初学一级) | 2021-06-23 08:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册