当前位置:编程学习 > C#/ASP.NET >>

字符串数组赋值出错!

源代码如下
 public string strID;
        public string strNum;
        public string strType;
        public string strCount;
        public string strProdution;
        public string strData;
        public string strPlace;
        public string strBranch;
        public string strBackup;
        public string strCharge;
        public string strName;
        public string strSql;
        public static int intCount = 0;//控制数据组索引
        public string [] strScoure = new string [9];//定义查询字符串数组
        public int intAdd;//用来判断SQL语句数组数量
        public void DatetimeJudge()
        {
            if (dateTimePicker1.Value > dateTimePicker2.Value)
            {
                MessageBox.Show("生产日期选择出错,请检查!");
            }
            if (dateTimePicker1.Value < dateTimePicker2.Value)
            {
                strData = "生产日期 between'"+dateTimePicker1.Value.Date+"'and'"+dateTimePicker2.Value.Date+"'";
            }
            if (dateTimePicker1.Value == dateTimePicker2.Value)
                strData = "生产日期='" + dateTimePicker1.Value.Date + "'";
        }
        public void GetScoure(string strSql)
        {
            if (p == 1)
            {
                MyMean.OpenCon();
                SqlCommand command4 = new SqlCommand(strSql, MyMean.MyCon);
                dataGridView1.Rows.Clear();
                SqlDataReader p_dataReader = command4.ExecuteReader();
                while (p_dataReader.Read())
                {
                    dataGridView1.Rows.Add(p_dataReader[0].ToString(),p_dataReader[1].ToString(),p_dataReader[2].ToString(),p_dataReader[3].ToString(),p_dataReader[4].ToString(),p_dataReader[5].ToString(),p_dataReader[6].ToString(),p_dataReader[7].ToString(),p_dataReader[8].ToString(),p_dataReader[9].ToString(),p_dataReader[10].ToString(),p_dataReader[11].ToString());
                }
                MyMean.CloseCon();

            }

        }
        private void button6_Click(object sender, EventArgs e)
        {
            if (p == 1)
            {
                intCount = 0;
                if (textBox1.Text != "")
                {
                    strName = "name like '%" + //定义SQL字符串
                    textBox1.Text + "%'";
                    strCount[intCount] = strName;
                    intCount++;
                }
                if (textBox2.Text != "")
                {
                    strNum = "编号 like '%" + //定义SQL字符串
                    textBox2.Text + "%'";
                    strCount[intCount] = strNum;
                    intCount++;
 
                }
                if (textBox3.Text != "")
                {
                    strType = "型号 like '%" + //定义SQL字符串
                    textBox3.Text + "%'";
                    strCount[intCount] = strType;
                    intCount++;
                }
                if (textBox4.Text != "")
                {
                    strProdution = "生产厂商 like '%" + //定义SQL字符串
                    textBox4.Text + "%'";
                    strCount[intCount] = strProdution;
                    intCount++;
                }
                if (textBox5.Text != "")
                {
                    strPlace = "安装地点 like '%" + //定义SQL字符串
                    textBox5.Text + "%'";
                    strCount[intCount] = strPlace;
                    intCount++;
                }
                if (textBox6.Text != "")
                {
                    strBranch = "所属部门 like '%" + //定义SQL字符串
                    textBox6.Text + "%'";
                    strCount[intCount] = strBranch;
                    intCount++;
                }
                if (textBox7.Text != "")
                {
                    strCharge = "负责人 like '%" + //定义SQL字符串
                    textBox7.Text + "%'";
                    strCount[intCount] = strCharge;
                    intCount++;
                }
                if (comboBox1.Text != "")
                {
                    strBackup = "生产厂商 like '%" + //定义SQL字符串
                    comboBox1.Text + "%'";
                    strCount[intCount] = strBackup;
                    intCount++;
                }
                if (checkBox1.Checked = true)
                {
                    DatetimeJudge();
                    strCount[intCount] = strData;
                    intCount++;
                }
                for (int i = 0; i < strScoure.Length; i++)//遍历字符串集合
                {
                    if (strScoure[i] != null)//判断字符是否为空
                    {
                        strSql += strScoure[i];//组合查询字符串
                        intAdd++;//开始记数
                    }
                }
                switch (intAdd)//使用多路选择语句组合查询语句
                {

                    case 0:
                        strSql = "select * from 设备设施信息表";
                        break;
                    case 1:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0];
                        break;
                    case 2:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1];
                        break;
                    case 3:

                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2];
                        break;
                    case 4:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4];
                        break;
                    case 5:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4] + " and " + strScoure[5];
                        break;
                    case 6:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4] + " and " + strScoure[5] + " and " + strScoure[6];
                        break;
                    case 7:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4] + " and " + strScoure[5] + " and " + strScoure[6] + " and " + strScoure[7];
                        break;
                    case 8:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4] + " and " + strScoure[5] + " and " + strScoure[6] + " and " + strScoure[7] + " and " + strScoure[8];
                        break;
                    case 9:
                        strSql = "select * from 设备设施信息表 where " + strScoure[0] +
                            " and " + strScoure[1] + " and " + strScoure[2] +
                            " and " + strScoure[3] + " and " + strScoure[4] + " and " + strScoure[5] + " and " + strScoure[6] + " and " + strScoure[7] + " and " + strScoure[8] + " and " + strScoure[9];
                        break;
                }
                GetScoure(strSql);//查询数据库中数据
                intAdd = 0;//记数器置0
                intCount = 0;//记灵器置0
                strSql = "";//重置SQL语句
                for (int i = 0; i < strScoure.Length; i++)
                {
                    if (strScoure[i] != null)
                    {
                        strScoure[i] = null;//清空字符串数组内容
                    }
                }

            }
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked = true)
            {
                dateTimePicker1.Enabled = true;
                dateTimePicker2.Enabled = true;
            }
            else
            {
                dateTimePicker1.Enabled = false;
                dateTimePicker2.Enabled = false;
            }
        }

运行后报错

皆为
strCount[intCount] = XXXX;
                    intCount++;
处。
错误为:错误4无法对属性或索引器“string.this[int]”赋值 -- 它是只读的;错误5无法将类型“string”隐式转换为“char”

求高手解惑,在另外一个例子程序中,这段代码完全没有任何问题,很是困惑啊 --------------------编程问答-------------------- 太长了没看完,
1、估计是有属性不能赋值的,如果是你手写的是不没加get属性?
2、那就加强制转换为char不就行了 --------------------编程问答-------------------- 建议你加个try catch 把错误日志打出来再看是什么原因。 --------------------编程问答-------------------- strCount不是数组,是不是写错了。应该是strScoure。 --------------------编程问答-------------------- 哥们你的代码也太长了点,捡个重点的copy上来啥,你搞个try{}catch{}包装哈子 --------------------编程问答-------------------- 太长了,好好调试一下。

欢迎光临我的博客 --------------------编程问答-------------------- public string [] strScoure = new string [9];//定义查询字符串数组 
public string strScoure = new string [9];
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,