C#初学的问题在线等

liweining123 2009-03-22 05:14:40
我是个C#初学者
问题是这样的
现在我有个很简单的查询界面,在这个界面中,我有个添加新数据的功能,那么问题就是

我添加的界面中有个textbox控件用来自动生成ID
比如数据库中我查询中最大的编号是Y001,当我点击确定添加按钮后,如果自动生成一个Y002在textbox控件中

非常感谢!
在线等各位大侠回答!
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liweining123 2009-03-22
  • 打赏
  • 举报
回复
谢谢楼上的各位大侠
问题已经基本解决
在做善后工作
再次感谢各位
下次有问题继续请教各位大侠
youyouke 2009-03-22
  • 打赏
  • 举报
回复
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();
//没有区分大小写,你自己试一下
liweining123 2009-03-22
  • 打赏
  • 举报
回复
可是我在数据库中select max(popeid) from table的时候能查询出一个结果啊
流氓兔 2009-03-22
  • 打赏
  • 举报
回复
string i = Convert.ToString(cmd.ExecuteNonQuery());
你自己在数据库中定义的是什么类型啊 sql = "select popeid=max(popeid) from hr_userpope";
popeid是什么类型的啊,都找到了popeid(可以定义为int),要不然怎么用max()函数啊?向ID什么的最好用INT类型的,可以在定义一个char(n)用于表示你要的那个意思!


coodd 2009-03-22
  • 打赏
  • 举报
回复
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
gisyellow 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liweining123 的回复:]
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…
[/Quote]
popeid字段是数值型的么?如果不是好像就不能用Max函数吧。。实在不行就只好把所有的popeid读出来,然后拆分出数字再排序了。。
liweining123 2009-03-22
  • 打赏
  • 举报
回复
急啊,有没有大侠给下解释和建议呢
liweining123 2009-03-22
  • 打赏
  • 举报
回复
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;

我现在是这样写,不知道合理不合理?
liweining123 2009-03-22
  • 打赏
  • 举报
回复
问题是这样的
我这个编号是P001,貌似是string类型
怎么自动加1法呢?
求教谢谢
pc_funning 2009-03-22
  • 打赏
  • 举报
回复
1.如果编号要自动增长下去,最好在数据库里实现
2.你非要在文本框中自动生成,就在确定按钮的单击事件里写一下自动生成就行了,比如读出最大的编号,然后+1,这样就行了。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧