小弟新手 刚接触C#不久  现在做一个小系统   要求有一个自动编号的功能,比如我第一次在textbox输入Billcode-001 ,保存后,那么以后每次打开这个窗口,这个textbox都会自动+1,第二次打开窗体这个textbox显示的是Billcode_002,如果不保存,再打开的话还是Billcode_002,这个功能怎么实现啊,最好有具体代码,谢谢各位大神了,新手新注册的号也没啥分值就一点,,总之知识无价~~麻烦大家了

解决方案 »

  1.   

    啥意思。。不懂啊能解释下么我在网上查资料查了好久,都知识类似int型的自增,我这个属于string型吧。这个不会弄啊 
      

  2.   

    "Billcode-"+(自增长整型)变量.ToString().PadLeft(3,'0');
    怎么存取(自增长整型)变量,参考楼上几位
      

  3.   

    这个如何更改啊,这个字段我刚才举例是billcode_001   这个不是一定的   也许是bill_code_0_01  以后自加1的时候变成bill_code_0_02   这都是有可能的。。所以更改这个值怎么更改啊   你说的笨方法我能明白  可是不会更改啊
      

  4.   

    第一次在textbox输入的内容万一没有数字呢?如果有数字是不是右匹配?
      

  5.   

    有固定格式就简单了...Convert.ToInt32("13-002-0001".substring(7,4))+1;取最后存入的值+1放入TextBox
      

  6.   

    在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();
                    }
      

  7.   

    直接转string就好了啊 
    "13-002-"+Convert.ToString(id.PadLeft(4, '0'));
    把这个直接赋给textbox的Text
    id就是你表里面存的最大的数+1
      

  8.   

    谢谢大家啊 根据大家给的意见  因为新手所以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字段,等于保存的话都更新一下,每次打开窗口的时候都查询这个数字。方法虽然很笨,可是对我来说这样才看得懂,,各位看看思路可以么