作者:孙英鹏 撰写时间:2019年8月7日
关于自动生成单号我们并不陌生,就是用数字和字母组成的单号,然后再用代码拼接起来,有好多种,有利用当前时间的,也有用数字的,只要你肯想就可以做。关于MVC里面的自动生成单号怎么做,想必大家都会,不会的大家可以上网借鉴一下,可是关于WPF的自动生成单号怎么做,网上可没有过多的详情解释,接下来就由我来给大家一一讲解一下,WPF的自动生成单号怎么实现。
第一种方法:
把数据库打开,点击你的数据库下发的可编程性,我们要在里面写一个查询方法,把你想要生成单号的字段查询出来后再加一,然后在倒叙,这样查询出来的数据就会递增。
代码:
--自动生成编号
IF(@type='B_PurchaseLotNumber_NUMBER')
BEGIN
SELECT TOP 1 RTRIM( B_PurchaseLotNumber) as Number
FROM PW_BuyingBatches
ORDER BY BuyingBatchesID DESC
END
数据库写完了就回到服务端里面,把数据库写的查询方法传递到服务端。
代码:
//定义操作契约(自动生成单号)
[OperationContract]
public DataSet B_PurchaseLotNumber_NUMBER()
{
//实例化对象数组
SqlParameter[] mySqlParameter =
{
//定义传递参数,以及传递参数的类型
new SqlParameter("@type",SqlDbType.NChar),
};
mySqlParameter[0].Value = "B_PurchaseLotNumber_NUMBER";
DataTable myDataTable
= myDALMethod.QueryDataTable("UC_BuyAccept", mySqlParameter);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
接下来就要在客户端里面写了,先写一个自动生成单号的方法,这个方法是在网上找到的,并非本人写的。
代码:
public class RandomNumber
{
public static object _lock = new object();
public static int count = 1;
public string GetRandom1(string asd)
{
int numder = Convert.ToInt32(asd.Substring(10));
count = numder + 1;
lock (_lock)
{
if (count >= 10000)
{
count = numder;
}
var number = "MR" + DateTime.Now.ToString("yyyyMMdd") + count.ToString("0000");
count++;
return number;
}
}
}
写完之后,就在页面加载事件里面调用方法,就行了。
代码:
DataTable dtNum = myClient.B_PurchaseLotNumber_NUMBER().Tables[0];
string dtnusdf = dtNum.Rows[0]["Number"].ToString();
txt_Number.Text = (new RandomNumber().GetRandom1(dtnusdf));
第二种方法:
直接在页面加载事件上写。
代码:
MainBanks.Text = DateTime.Now.ToString("Z" + "yyyyMMddHHmmss");