.先说下我的思路.
我是从复选框选中要导入的字段,从EXCEL读取然后放入数据库
所以我在每个复选框的Tag上都给了一个数,从0到12,一共13个复选框.说下现在的问题吧.
以前做测试的时候都是把值这样.Excel上面是用A,B,C来表示对吧
A      B      C       D     E      F     G      H     I
a      b      c       d
A,B,C,D直到I,都有值的话,话存在的话然后我选中字段,第一个也就是Tag为0和第三个Tag为2的字段.也就只是插入这两个字段.今晚测试人员说如果
A      B      C       D     E      F     G      H     I
a      b      b       d
这样,然后选择第一个,第三个,第五个,第12个. tag0 tag2 tag4 tag11.
的话,程序就只将a    b    c    d
在Excel存在的值并且只插入第一个a,和d...tag0 tag2  .但为NULL. 贴上我的代码…… 俺的语文不好,大家可能不清楚...List<string> lstr = new List<string>();
                foreach (Control ct in this.tabControl1.Controls[0].Controls)
                {
                    if (ct is CheckBox)
                    {
                        if (((CheckBox)ct).Checked)
                        {
                            if (ct.Tag != null)
                                lstr.Add(ct.Tag.ToString());
                        }
                    }
                }                string from = this.comboBox6.Text;
                int Num = moudle.InsertApplet(dt, lstr,from);
这里获得选中的复选框的tag值放进lstr里.
  if (dt.Rows.Count > 1)
                {                 for (int i = 0; i < dt.Rows.Count;i++ )
                {
                   
                    Num = Num + 1;
                    SqlParameter[] arParams = new SqlParameter[18];
                    if (dt.Columns.Count>0 &&dt.Rows[i][0].ToString() != "" && lstr.Contains("0") )
                    {
                        arParams[1] = new SqlParameter("@username", dt.Rows[i][0].ToString());
                    }
                    else                    {
                        arParams[1] = new SqlParameter("@username",DBNull.Value );
                    
                    }                    if (dt.Columns.Count > 1&&dt.Rows[i][1].ToString() != "" && lstr.Contains("1") )
                    {
                        arParams[2] = new SqlParameter("@sex", dt.Rows[i][1].ToString());
                    }
                    else
                    {
                        arParams[2] = new SqlParameter("@sex", DBNull.Value);
                       
                    }
这里我贴一点,这是判断选中的复选框tag...如果是选中的就插入SQL语句中.俺知道现在的判断有问题...现在如果EXCEL每个字段的值不写的话,就不能随意选复选框.
要怎么改才能将excel的值不用写满就能按复选框来插....

解决方案 »

  1.   

    判断空值
    Excel.Range ran=(Excel.Range)mSheet.Cells[i,j];   
    if(ran.Value2==null)
    {}
    Excel.Range 类
      

  2.   

    判断空值
    Excel.Range ran=(Excel.Range)mSheet.Cells[i,j];   
    if(ran.Value2==null)
    {}
    Excel.Range 类
      

  3.   

    不是空的.只是EXCEL如果有少于13个或以上的,按复选框都能插入
    但是现在EXCEL我只在前面4个字段写上值,然后勾上的复选框又是第一个,第三个,第五个,第十一个...
    就只插入第一个和第三个的值,第五个和第十一个勾选的就没按勾的字段插...
    是这个意思