当前位置: 代码迷 >> ASP.NET >> C#NETdo while循环有关问题
  详细解决方案

C#NETdo while循环有关问题

热度:868   发布时间:2013-02-25 00:00:00.0
C#.NETdo while循环问题
C# code
string CardNumber="字符串"; SqlCommand sqlcom2 = new SqlCommand("select * from MB_CARD where CARD_NO='" + CardNumber + "'", sqlconn);             int count = Convert.ToInt32(sqlcom2.ExecuteScalar());             do             {                           }             while ();

为了保持CardNumber 的唯一性,在生成的字符串中用do while语句进行数据判断.
在查询出MB_CARD表中CARD_NO是否有CardNumber 的值
如果表中有则重新生成CardNumber 字符,如果没有则进行提交.

------解决方案--------------------------------------------------------
不知道你要干嘛
但如果你这么干,你的程序的性能就会非常差。
------解决方案--------------------------------------------------------

while (count>0)
{
生成新的字符串
SqlCommand sqlcom2 = new SqlCommand("select * from MB_CARD where CARD_NO='" + CardNumber + "'", sqlconn);
int count = Convert.ToInt32(sqlcom2.ExecuteScalar());

}

正如楼上所说效率不好
------解决方案--------------------------------------------------------
这样写你的程序性能上不怎么样

这样或许好点
C# code
string CardNumber="字符串"; SqlCommand sqlcom2 = new SqlCommand("select Count(*) from MB_CARD where CARD_NO='" + CardNumber + "'", sqlconn);             int count = Convert.ToInt32(sqlcom2.ExecuteScalar());if(count > 1){    //重新生成CardNumber 字符的代码}
------解决方案--------------------------------------------------------
用sql解决重复问题,插入时自动判断是否存在。
------解决方案--------------------------------------------------------
C# code
        string CardNumber = "字符串";        bool isExistValue = true;        do        {           SqlCommand sqlcom2 = new SqlCommand("select count(*) from MB_CARD where CARD_NO='" + CardNumber + "'", sqlconn);            int count = Convert.ToInt32(sqlcom2.ExecuteScalar());            if (count > 0)            {                // 重新生成                CardNumber = "************";            }            else            {                isExistValue = false;            }        }        while (isExistValue);
------解决方案--------------------------------------------------------
為啥不在CardNumber生成的時候,只要生成唯一的CardNumber,就不需要判斷了
你可以加上CardNumber表最后一個number的+1的方式生成CardNumber,就不會重復了
  相关解决方案