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