C#添加时关于sqlserver中编号不是自动的问题

我用的是selectisnull(max(u_Id),0)fromuserInfo获取编号列的最大值,但在C#后台中如何写获取最大值的代码... 我用的是select isnull(max(u_Id),0) from userInfo获取编号列的最大值,但在C#后台中如何写获取最大值的代码 展开
 我来答
beierte
2012-12-24 · TA获得超过147个赞
知道答主
回答量:262
采纳率:0%
帮助的人:83.4万
展开全部
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用。我们通常的做法有如下几种:
1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库;
2. 使用特定数据库的 auto_increment 特性,在插入数据完成后,使用 select max(id) 获取主键值;
数据库能办到干嘛要用C#做,
我的老师,以前说过这样一句话,改变了我对数据库的看法。
“不要什么事,都放在代码里做。数据库能做很多事,你不充分利用它,那你还用什么数据库?”
下面可以借鉴一下
private static int GetMaxId(int iditems)
{
int maxid = 0;
foreach (int id in iditems)
{
if (id > maxid)
{
maxid = Id;
}
}
return maxid;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ben
2012-12-24 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
后台?您指的是C#代码?
在C#执行SQL语句的时候
// 摘要:
// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
//
// 返回结果:
// 结果集中第一行的第一列;如果结果集为空,则为空引用(在 Visual Basic 中为 Nothing)。
//
// 异常:
// System.Data.SqlClient.SqlException:

public override object ExecuteScalar();

SqlCommand c = new SqlCommand(查询文本,SQL连接);
object obj= c.ExecuteScalar();

然后强转即可
更多追问追答
追问
好像不行唉,添加还是失败
追答
添加?您写的是查询语句呀?
来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wyh7954
2012-12-25 · 超过33用户采纳过TA的回答
知道答主
回答量:153
采纳率:50%
帮助的人:47.3万
展开全部
取最大值,直接在SQL里面+1 就可以了。
select isnull(max(u_Id),0) +1 as MaxValues from userInfo
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四叶草的_微笑_
2012-12-24 · TA获得超过204个赞
知道答主
回答量:142
采纳率:0%
帮助的人:67.1万
展开全部
在C#中添加数据库引入Select查询语句就是得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式