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

C#NETdo while循环有关问题

2012-02-12 
C#.NETdowhile循环问题C# codestring CardNumber字符串 SqlCommand sqlcom2 new SqlCommand(select

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,就不會重復了

热点排行