.先说下我的思路.
我是从复选框选中要导入的字段,从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的值不用写满就能按复选框来插....
我是从复选框选中要导入的字段,从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的值不用写满就能按复选框来插....
Excel.Range ran=(Excel.Range)mSheet.Cells[i,j];
if(ran.Value2==null)
{}
Excel.Range 类
Excel.Range ran=(Excel.Range)mSheet.Cells[i,j];
if(ran.Value2==null)
{}
Excel.Range 类
但是现在EXCEL我只在前面4个字段写上值,然后勾上的复选框又是第一个,第三个,第五个,第十一个...
就只插入第一个和第三个的值,第五个和第十一个勾选的就没按勾的字段插...
是这个意思