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