新手提问,请大大帮忙

cwb210 2008-10-07 10:23:17
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;

}
}
}

}
看不明白这段里面怎么只循环一次呢?我要是想让他循环多次该怎么办呢?
...全文
124 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwb210 2008-10-07
  • 打赏
  • 举报
回复
我想我知道关键在哪了 先我自己看看 呵呵 不过不行的话 还是要大大们帮忙啊
cwb210 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 horny 的回复:]
我也是初学者,好像只比你好一点点,一起学习吧
[/Quote]
恩 加油
horny 2008-10-07
  • 打赏
  • 举报
回复
我也是初学者,好像只比你好一点点,一起学习吧
cwb210 2008-10-07
  • 打赏
  • 举报
回复
是不是把sProductCode改成lvView.Items.Count就是行的呢?
呵呵 这样好像行不通@_@
cwb210 2008-10-07
  • 打赏
  • 举报
回复
那我该怎么满足呢?sProductCode 这不是固定的值吗?我选的第一个项就=sProductCode阿?
是不是把sProductCode改成lvView.Items.Count就是行的呢?
slin60 2008-10-07
  • 打赏
  • 举报
回复
你要满足sCode == sProductCode 的条件才会添加多项啊!
cwb210 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 slin60 的回复:]
引用 10 楼 cwb210 的回复:
引用 2 楼 slin60 的回复:
循环一次说明m_dtStandard.Rows只有一行

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



呵呵,我刚才说错了,没看到break
你循环一次是因为这个的,不好意思
[/Quote]
break去了循环是循环了 可是我要的是添加多个选项。
应该是m_dtStandard是等于1,但我不知道怎么解决这
cwb210 2008-10-07
  • 打赏
  • 举报
回复
break去掉是一样的,我想可能是m_dtStandard里面是1,但我对数据库这方面不懂,还没接触,所以不明白了
slin60 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cwb210 的回复:]
引用 2 楼 slin60 的回复:
循环一次说明m_dtStandard.Rows只有一行

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


呵呵,我刚才说错了,没看到break
你循环一次是因为这个的,不好意思
cwb210 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 slin60 的回复:]
循环一次说明m_dtStandard.Rows只有一行
[/Quote]
怎么只有一行呢?(我对数据库连接这方面还不懂)m_dtStandard这是一个标准库,而且在添加前我是选择了多个选项的,怎么会只添加第一个呢?这又说明m_dtStandard库里面好像是只由一个?
不明白
hanyu0528 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cn_net_entlib 的回复:]
最后一行,把 break 做掉。。
[/Quote]
应该是这个问题
moodboy1982 2008-10-07
  • 打赏
  • 举报
回复
把if( sCode == sProductCode )改为
if( sCode.CompareTo(sProductCode)==0)
fly_to_sky 2008-10-07
  • 打赏
  • 举报
回复
把break改成continue;
stning 2008-10-07
  • 打赏
  • 举报
回复
break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。

来自msdn的解释。
ericzhangbo1982111 2008-10-07
  • 打赏
  • 举报
回复
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; 去掉。
我姓区不姓区 2008-10-07
  • 打赏
  • 举报
回复
break是跳出循环啊
卧_槽 2008-10-07
  • 打赏
  • 举报
回复
把break去了就行了。
slin60 2008-10-07
  • 打赏
  • 举报
回复
循环一次说明m_dtStandard.Rows只有一行
cn_net_entlib 2008-10-07
  • 打赏
  • 举报
回复
最后一行,把 break 做掉。。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧