关于C# winform窗体程序自动编号的问题 小弟新手 刚接触C#不久 现在做一个小系统 要求有一个自动编号的功能,比如我第一次在textbox输入Billcode-001 ,保存后,那么以后每次打开这个窗口,这个textbox都会自动+1,第二次打开窗体这个textbox显示的是Billcode_002,如果不保存,再打开的话还是Billcode_002,这个功能怎么实现啊,最好有具体代码,谢谢各位大神了,新手新注册的号也没啥分值就一点,,总之知识无价~~麻烦大家了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 啥意思。。不懂啊能解释下么我在网上查资料查了好久,都知识类似int型的自增,我这个属于string型吧。这个不会弄啊 "Billcode-"+(自增长整型)变量.ToString().PadLeft(3,'0');怎么存取(自增长整型)变量,参考楼上几位 这个如何更改啊,这个字段我刚才举例是billcode_001 这个不是一定的 也许是bill_code_0_01 以后自加1的时候变成bill_code_0_02 这都是有可能的。。所以更改这个值怎么更改啊 你说的笨方法我能明白 可是不会更改啊 第一次在textbox输入的内容万一没有数字呢?如果有数字是不是右匹配? 有固定格式就简单了...Convert.ToInt32("13-002-0001".substring(7,4))+1;取最后存入的值+1放入TextBox 在Settings.settings里增加名称NowID,范围为“应用程序”,类型为int,值为1读取代码:string myValue = Properties.Settings.Default.NowID.ToString();赋值代码:DateTime.Now.ToString("yy")+"-002-"+myValue.PadLeft(4,'0')保存比较麻烦:string aa=(Convert.ToInt32(myValue) + 1).ToString(); string configFileName = Application.ExecutablePath + ".config"; System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(configFileName); string configString = @"configuration/applicationSettings/WindowsFormsApplication1.Properties.Settings/setting[@name='NowID']/value"; //根据需要修改WindowsFormsApplication1和NowID System.Xml.XmlNode configNode = doc.SelectSingleNode(configString); if (configNode != null) { configNode.InnerText = aa.ToString(); doc.Save(configFileName); // 刷新应用程序设置,这样下次读取时才能读到最新的值。 Properties.Settings.Default.Reload(); } 直接转string就好了啊 "13-002-"+Convert.ToString(id.PadLeft(4, '0'));把这个直接赋给textbox的Textid就是你表里面存的最大的数+1 谢谢大家啊 根据大家给的意见 因为新手所以10楼大神的写法很多地方不太懂 不过大概意思明白了 然后11楼的大神的想法也很好 就是我综合了10楼大叔年份要时时更新的方法 12楼大神你写的这个按键触发事件不太好 我准备给他放到窗口初始化事件里 然后最后我是这么写的,但还没有调试 肯定写的不好 希望大家看后给予意见指正 private void Form4_Load(object sender, EventArgs e) { string sql = string.Format("select number from tb_code "); DataTable dt = SQLhelper.GetDataSet(sql).Tables[0]; string code = dt.Rows[0]["number"].ToString(); string a = (Convert.ToInt32(code) + 1).ToString().PadLeft(4,'0'); string billcode = DateTime.Now.ToString("yy") + "-002-" + a; textBox2.Text = billcode; }然后我准备在保存那个按钮里进行update我这个数据库number字段,等于保存的话都更新一下,每次打开窗口的时候都查询这个数字。方法虽然很笨,可是对我来说这样才看得懂,,各位看看思路可以么 C#关于while语句 vs2003下c#开发wince4.2程序时,关于label、panel控件的疑问 未实例化对象? bitmap 转成imagesource后,原bitmap的大小和转换后的imagesource的大小有什么关系? 模板错误 窗体如何捕捉消息(任何消息) 能够在TextBox中实现文字滚动的效果吗? .NET 动态窗体 窗体设计器 组件 C# GDI+的问题,高手进来看看。 反编译c# dll求助 新升级MySee、MyClass和SeePicture! 在C#中需要实现两个基类中方法的问题
怎么存取(自增长整型)变量,参考楼上几位
读取代码:
string myValue = Properties.Settings.Default.NowID.ToString();赋值代码:
DateTime.Now.ToString("yy")+"-002-"+myValue.PadLeft(4,'0')保存比较麻烦:
string aa=(Convert.ToInt32(myValue) + 1).ToString();
string configFileName = Application.ExecutablePath + ".config";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(configFileName);
string configString = @"configuration/applicationSettings/WindowsFormsApplication1.Properties.Settings/setting[@name='NowID']/value"; //根据需要修改WindowsFormsApplication1和NowID
System.Xml.XmlNode configNode = doc.SelectSingleNode(configString);
if (configNode != null)
{
configNode.InnerText = aa.ToString();
doc.Save(configFileName);
// 刷新应用程序设置,这样下次读取时才能读到最新的值。
Properties.Settings.Default.Reload();
}
"13-002-"+Convert.ToString(id.PadLeft(4, '0'));
把这个直接赋给textbox的Text
id就是你表里面存的最大的数+1
private void Form4_Load(object sender, EventArgs e)
{
string sql = string.Format("select number from tb_code ");
DataTable dt = SQLhelper.GetDataSet(sql).Tables[0];
string code = dt.Rows[0]["number"].ToString();
string a = (Convert.ToInt32(code) + 1).ToString().PadLeft(4,'0');
string billcode = DateTime.Now.ToString("yy") + "-002-" + a;
textBox2.Text = billcode;
}
然后我准备在保存那个按钮里进行update我这个数据库number字段,等于保存的话都更新一下,每次打开窗口的时候都查询这个数字。方法虽然很笨,可是对我来说这样才看得懂,,各位看看思路可以么