C#添加时关于sqlserver中编号不是自动的问题
我用的是selectisnull(max(u_Id),0)fromuserInfo获取编号列的最大值,但在C#后台中如何写获取最大值的代码...
我用的是select isnull(max(u_Id),0) from userInfo获取编号列的最大值,但在C#后台中如何写获取最大值的代码
展开
展开全部
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用。我们通常的做法有如下几种:
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台?您指的是C#代码?
在C#执行SQL语句的时候
// 摘要:
// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
//
// 返回结果:
// 结果集中第一行的第一列;如果结果集为空,则为空引用(在 Visual Basic 中为 Nothing)。
//
// 异常:
// System.Data.SqlClient.SqlException:
public override object ExecuteScalar();
SqlCommand c = new SqlCommand(查询文本,SQL连接);
object obj= c.ExecuteScalar();
然后强转即可
在C#执行SQL语句的时候
// 摘要:
// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
//
// 返回结果:
// 结果集中第一行的第一列;如果结果集为空,则为空引用(在 Visual Basic 中为 Nothing)。
//
// 异常:
// System.Data.SqlClient.SqlException:
public override object ExecuteScalar();
SqlCommand c = new SqlCommand(查询文本,SQL连接);
object obj= c.ExecuteScalar();
然后强转即可
更多追问追答
追问
好像不行唉,添加还是失败
追答
添加?您写的是查询语句呀?
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取最大值,直接在SQL里面+1 就可以了。
select isnull(max(u_Id),0) +1 as MaxValues from userInfo
select isnull(max(u_Id),0) +1 as MaxValues from userInfo
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在C#中添加数据库引入Select查询语句就是得
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询