/// <summary>
/// 产生自定义的多位随机数,由数字组成
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
static string GetIntCode(int num)
{
string a = "0123456789";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++)
{
sb.Append(a[new Random(Guid.NewGuid().GetHashCode()).Next(0, a.Length - 1)]);
}
return sb.ToString();
}
/// <summary>
/// 产生无重复自动ID
/// </summary>
/// <param name="prefix">前缀</param>
/// <param name="tableName">表名</param>
/// <param name="len">长度</param>
/// <returns></returns>
public string GetAutoId(string prefix, string tableName, int len)
{
string tempCode = prefix;
do
{
tempCode = prefix + GetIntCode(len);
} while (HasAutoId(tempCode, tableName));
return tempCode;
}
private bool HasAutoId(string autoid, string tablename)
{
bool flag = false;
SQLHELPER db = new SQLHELPER();
StringBuilder sql = new StringBuilder("select count(*) from ");
sql.Append(tablename);
sql.Append(" where Information_Id=@autoid");
SqlCommand cmd = db.GetCommandStr(sql.ToString());
cmd.Parameters.Add(new SqlParameter("@autoid", autoid));
int ret = Convert.ToInt32(db.ExecuteScalsr(cmd));
if (ret != 0)
{
flag = true;
}
return flag;
}