using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace HULUWA.DAL
{
/********************************************************************************************************
* 方法设计思路:
* 在数据库中新建一张表,用来存放指定自动增长列的格式,数据库中重要的三个字段为
* 前缀,中间自动增长,后缀
* (三者可以自定义位置或者任选组合,但是必须要有一个是纯数字组成的字符串,字符也可以,但是我写的这个方法无法实现,需要修改)
* 现在number就是我们需要增长的那个字符串
* 用substring截取,从第一个不是的数字截取到最后并且转换成数字用于和step做加法运算
* 运算完毕之后重新组装成一个新的字符串存入数据库中用于下载调用
* 返回新组装的字符串
* *****************************************************************************************************/
class huluwa
{
/// <summary>
/// 设置字符串Fid自动增长
/// </summary>
/// <param name="fid"></param>
/// <returns></returns>
private string AutoStringFId(string fid)
{
int step = 1;//设置自动增长量为1
string strFid = "";
//思路,从第一个不是的数字截取到最后一位
string number = fid;
char[] ch = new char[9] { '1', '2', '3', '4', '5', '6', '7', '8', '9' };//将除了0以外的所有数字放入字符数组
int a = number.IndexOfAny(ch);//获得第一个不是0的字符串索引位置
int count_0 = number.Substring(0, a).Length;//截取出前面所有的0的个数
int length = number.Length - count_0;//获得从第一个不是0的数字开始到最后的长度
int num = int.Parse(number.Substring(count_0, length));//将这个字符串转换成数字便于加法运算
num += step;//根据预先设置好的步长开始加法运算
length = num.ToString().Length;//获得运算过之后数字的长度并重新赋值给length(这里也可以重新定一个变量)
count_0 = number.Length - length;//获得运算后的个数,用字符串number的长度减去运算之后数字的长度
string befor_0 = "";//初始前面的循环加入字符串
for (int i = 0; i < count_0; i++)//如果count_0小于0的话就不会循环
{
befor_0 = befor_0 + "" + 0;
}
number = befor_0 + num.ToString();//重新赋值
strFid = number;
return strFid;
}
}
C#指定字符串作为数据库自动增长列的代码
最新推荐文章于 2023-04-04 15:53:09 发布