首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

很奇怪的有关问题!条件已经满足,但是事件不能被触发

2013-04-22 
很奇怪的问题!!!条件已经满足,但是事件不能被触发部分代码 FORM1代码public static int yjxf 0public s

很奇怪的问题!!!条件已经满足,但是事件不能被触发


部分代码 
FORM1代码



public static int yjxf = 0;
public static string yjxfkh = "";
private void b_allfee_Click(object sender, EventArgs e)
        {
            zxf = 0;
            yjxf = 0;
           if (l_cardshare_list.Items.Count > 0)
           {
            foreach (string czk_je in l_cardshare_list.Items)
            {
            if(czk_je.Substring(czk_je.IndexOf("会员卡号:") + 4,10) == "1216000001")
            {
             yjxf += Convert.ToInt32(czk_je.Substring(czk_je.IndexOf("消费:") + 3));
             yjxfkh = czk_je.Substring(czk_je.IndexOf("会员卡号:") + 4,10);
             }
             zxf += Convert.ToInt32(czk_je.Substring(czk_je.IndexOf("消费:") + 3));
             } 
             return;
            }
            else
            {
                l_czk_xfe.Text = "0";
            }
}

t_cardid.Text内容为:121600000120130414925296418
FORM2代码 MessageBox.Show的结果明明: 两行输出都是"1216000001" 为什么  
if (t_cardid.Text.Substring(1,10).ToString() == park_fee_out.yjxfkh.ToString())
不能被触发呢!???



           if (t_cardid.Text.Length == 27)
            {
MessageBox.Show(t_cardid.Text.Substring(0, 10) + Environment.NewLine + 
park_fee_out.yjxfkh + Environment.NewLine +
 Convert.ToInt32(park_fee_out.yjxf).ToString());
string shared_sql = "select * from storevaulecard_data where storevaluecard_cardid =
 '" + t_cardid.Text + "'";
                SqlConnection conn = new SqlConnection(fee_conn.sql_conn());
                SqlCommand cmd = new SqlCommand(shared_sql, conn);


                conn.Open();
                SqlDataReader rs = cmd.ExecuteReader();
                if (rs.Read())
                {
                    if (t_cardid.Text.Substring(1,10).ToString() == park_fee_out
.yjxfkh.ToString())
                    {
t_cje.Text = (Convert.ToInt32(rs["storevaluecard_Balance"]) 
- Convert.ToInt32(park_fee_out.yjxf)).ToString();
                    }
                    else
                    {
                        t_cje.Text = (Convert.ToInt32(rs["storevaluecard_Balance"]))
.ToString();
                    }
                    //shared_type = Convert.ToString(rs["storevaluecard_type"]);
                }
                else
                {
                    MessageBox.Show("不是有效消费卡", "提示");
                    t_cardid.Text = "";
                    return;
                }

            }
        }


[解决办法]
调试跟进去看看,两个值是否相等,是否进到 
if (t_cardid.Text.Substring(1,10).ToString() == park_fee_out.yjxfkh.ToString())
{}
语句里面,如果进去了,那就是里面处理中出现问题。
[解决办法]
设置断点,添加监视变量,然后单步走一下
[解决办法]
单步调试看是否运行到这
if (t_cardid.Text.Substring(1,10).ToString() == park_fee_out .yjxfkh.ToString()) 
如果运行到这的话就是条件不等,在两个字符串后面都加个 .trim()试下看
[解决办法]
MessageBox.Show(t_cardid.Text.Substring(0, 10) + Environment.NewLine +  park_fee_out.yjxfkh + Environment.NewLine +  Convert.ToInt32(park_fee_out.yjxf).ToString()); 

(t_cardid.Text.Substring(1,10).ToString() == park_fee_out .yjxfkh.ToString()) 


Substring(0, 10)?=Substring(1,10)
[解决办法]

引用:
设置断点,添加监视变量,然后单步走一下

正解。可能是那个传值出现问题了。

热点排行