我是个C#初学者
问题是这样的
现在我有个很简单的查询界面,在这个界面中,我有个添加新数据的功能,那么问题就是我添加的界面中有个textbox控件用来自动生成ID
比如数据库中我查询中最大的编号是Y001,当我点击确定添加按钮后,如果自动生成一个Y002在textbox控件中非常感谢!
在线等各位大侠回答!

解决方案 »

  1.   

    问题是这样的
    我这个编号是P001,貌似是string类型
    怎么自动加1法呢?
    求教谢谢
      

  2.   

    string sql = "select popeid=max(popeid) from hr_userpope";
                SqlConnection conn = new SqlConnection("server=.;database=HR-System;uid=sa;pwd=123456");
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql,conn);
                cmd.CommandType = CommandType.Text;
                string i = Convert.ToString(cmd.ExecuteNonQuery());
                int j= Convert.ToInt32((i.Substring(1,3)));
                j++;
                textBox1.Text = "P" + j;我现在是这样写,不知道合理不合理?
      

  3.   

    popeid字段是数值型的么?如果不是好像就不能用Max函数吧。。实在不行就只好把所有的popeid读出来,然后拆分出数字再排序了。。
      

  4.   

    SqlCommand执行数据插入命令不用说了吧,因为要返回插入的行的主键,所以要用
    textbox1.Text = SqlCommand.ExecuteScalar() as String;
    主要是SqlCommand的Sql语句,可以这样写declare @a varchar(10)
    Select @a='Y'+right(('00'+convert(varchar,convert(int,right(max(Id),3))+1)),3) From dbo.Table1
    Insert Into dbo.Table1 Values(@a,...,...)
    Select @a 
      

  5.   

      string i = Convert.ToString(cmd.ExecuteNonQuery()); 
    你自己在数据库中定义的是什么类型啊  sql = "select popeid=max(popeid) from hr_userpope"; 
    popeid是什么类型的啊,都找到了popeid(可以定义为int),要不然怎么用max()函数啊?向ID什么的最好用INT类型的,可以在定义一个char(n)用于表示你要的那个意思!
      

  6.   

    可是我在数据库中select max(popeid) from table的时候能查询出一个结果啊
      

  7.   

    string str="select ID=max(ID) from 表"
    conn.open();//conn在前就有定义
    sqlcommand cmd=new sqlcommand(sql,conn);
    cmd.CommandType = CommandType.Text; 
    string IDstr = Convert.ToString(cmd.ExecuteNonQuery()); 
    textbox1.text=idstr.substring(0,1)+(convert.int16(idstr.substring(1,idstr.length-1))+1).tostring();
    //没有区分大小写,你自己试一下