void AddProduct(string sProductCode,int iNum)
{
string sCode = "";
bool blNew = true;

for( int i=0;i<lvView.Items.Count;i++ )
{
// sCode = lvView.Items.Count.ToString();
sCode = lvView.Items[i].Text ;

if( sCode == sProductCode )
{
int iSum = 0;
try
{
iSum =  Convert.ToInt32( lvView.Items[i].SubItems[3].Text);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
iSum = iSum + iNum;
lvView.Items[i].SubItems[3].Text = iSum.ToString();
blNew = false;
}
}
if( blNew )
{
for( int i=0;i<m_dtStandard.Rows.Count;i++ )

{
sCode = m_dtStandard.Rows[i][0].ToString().Trim();
if( sCode == sProductCode )//是这句的原因吗?
{
ListViewItem lvi =  new ListViewItem();
lvi.Text = m_dtStandard.Rows[i][0].ToString().Trim();
lvi.SubItems.Add(m_dtStandard.Rows[i][1].ToString().Trim());
lvi.SubItems.Add(m_dtStandard.Rows[i][2].ToString().Trim());
lvi.SubItems.Add(iNum.ToString());
lvi.SubItems.Add(m_dtStandard.Rows[i]["rkdj"].ToString().Trim());
lvView.Items.Add( lvi );
break;

}
}
} }
看不明白这段里面怎么只循环一次呢?我要是想让他循环多次该怎么办呢?

解决方案 »

  1.   

    最后一行,把 break 做掉。。
      

  2.   

    循环一次说明m_dtStandard.Rows只有一行
      

  3.   

    for( int i=0;i <m_dtStandard.Rows.Count;i++ ) { 
    sCode = m_dtStandard.Rows[i][0].ToString().Trim(); 
    if( sCode == sProductCode )//是这句的原因吗? 

    ListViewItem lvi =  new ListViewItem(); 
    lvi.Text = m_dtStandard.Rows[i][0].ToString().Trim(); 
    lvi.SubItems.Add(m_dtStandard.Rows[i][1].ToString().Trim()); 
    lvi.SubItems.Add(m_dtStandard.Rows[i][2].ToString().Trim()); 
    lvi.SubItems.Add(iNum.ToString()); 
    lvi.SubItems.Add(m_dtStandard.Rows[i]["rkdj"].ToString().Trim()); 
    lvView.Items.Add( lvi ); 
    break; 

    首先看看m_dtStandard.Rows.Count是不是1
    在看看sCode == sProductCode 是否相等
    在吧break; 去掉。
      

  4.   

    break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。来自msdn的解释。
      

  5.   

    把if( sCode == sProductCode )改为
    if( sCode.CompareTo(sProductCode)==0)
      

  6.   

    怎么只有一行呢?(我对数据库连接这方面还不懂)m_dtStandard这是一个标准库,而且在添加前我是选择了多个选项的,怎么会只添加第一个呢?这又说明m_dtStandard库里面好像是只由一个?
    不明白
      

  7.   

    呵呵,我刚才说错了,没看到break
    你循环一次是因为这个的,不好意思
      

  8.   

    break去掉是一样的,我想可能是m_dtStandard里面是1,但我对数据库这方面不懂,还没接触,所以不明白了
      

  9.   

    break去了循环是循环了  可是我要的是添加多个选项。
    应该是m_dtStandard是等于1,但我不知道怎么解决这
      

  10.   

    你要满足sCode == sProductCode 的条件才会添加多项啊!
      

  11.   

    那我该怎么满足呢?sProductCode  这不是固定的值吗?我选的第一个项就=sProductCode阿?
    是不是把sProductCode改成lvView.Items.Count就是行的呢?
      

  12.   

    是不是把sProductCode改成lvView.Items.Count就是行的呢?
    呵呵 这样好像行不通@_@