2 justinrondo JustinRondo 于 2016.02.11 15:38 提问

C#连接SQL,产生递增id的问题

string sqlCommand5 = "select max(id) from VisitorLog";
SqlDataAdapter sqlDataAdapter5 = new SqlDataAdapter(sqlCommand5, conn);
DataSet ds5 = new DataSet();
sqlDataAdapter5.Fill(ds5);
if (ds5 != null && ds5.Tables[0].Rows.Count > 0)
{
string n = ds5.Tables[0].Rows[0][0].ToString();
if (n == "")
{
id = 1;
}
else
{
id = Convert.ToInt32(n) + 1;
}
}

                    我想做一个id递增事件,可是我这个id递增到10之后,就不再增加了,id加到10以后,全部为10。大神帮我看看,最好能帮我修改一下。

3个回答

caozhy
caozhy   Ds   Rxr 2016.02.11 21:28
已采纳

直接将你的id列定义为数据库的递增id。

或者将id列类型改为int。

你的问题是,id列是字符串。所以max(id)查询出来的是按照ascii序排列的,那么如果你的数据库有 1 2 3 4 5 6 7 8 9 10这么几个数据,max(id)查询出来的总是9。因为10的第一个字符'1' < '9'

wyy94
wyy94   2016.02.14 16:46

创建表的时候设置id自增多好

enpterexpress
enpterexpress   Rxr 2016.02.11 20:13

图片说明这种事情就交给数据库解决吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
实现按id递增顺序依次读取数据
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:config/spring-common.xml") public class UserTest { @Resource private UserService userService; @Resource private JdbcTempl
自动生成自增长编号
/// 单据编号,产生自增编号,如:入参为"DJ000002",将返回"DJ000003"         ///         /// 原值         /// 下一值         public string NextNumber(string BaseNumber)         {             string NewNumber = "";//新值   
设计程序,产生10个10-19的随机数,对它们递增排序并输出结果
/*应付作业,简单潦草,勿喷! * 随机数,数组排序 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Question5_3 { class Program { static void Main(string[]
sql server中表ID如果设置为自动递增如何实现表与表拷贝
--SQL表中两个表数据互传表对表(用于系统迁移及升级)其中涉及到 --主键系统ID自动增长直接对接数据自动增长数据编号同步不了问题处理方式 例如:新增表test2,test3 表 CREATE TABLE [dbo].[test2]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](250) NULL )
C#自然数递增,且每行数字的列数也递增
如下所示自然数递增,且每行数字的列数也递增,第一行 1 个数字 (1),第二行 2 个数 字 (2 ,3 ),以此类推,试编程找出规律、输出第 66 行的后 10 个数字内容。要求输出项保 持原顺序。
SQL_Oracle 表中ID字段的自动递增
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。 深蓝的blog:   目标:实现向一张表中插入数据时,ID字段自动递增。 开始实验: (1)、创建实验表 createtable test_ID_add ( IDNUMBER(10), USERNAME VARCHAR2(32), TEL VARCHAR2(11), CR
在SQL2008中,如何让id自动生成并自动递增?如何让时间默认生成?
id自动递增:    如果是用语句操作,这样定义:ID INT IDENTITY,如果是要生成一对数字,这样定义:ID INT IDENTITY(1,1)    如果要在SQL Server的表中设置,则将设置中的“标示” 改为“是”,“标示递增量”就会自动变成1. 时间默认添加:   如果是在用语句创建表时:Ddate datetime not null default getdat
关于SQL SERVER中如何操作自增长ID_Identity
想获取插入记录对应的自增列的值,执行下面语句:insert into TableName values(Column_Value) select @@identity; 拓展:SQL Server中,有三个比较类似的功能:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。   1)IDENT_CURRENT 返
趋势递增分布式ID生成方法:Snowflake
1.介绍 SnowFlake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 1.第一位是标识位,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0。 2.41位时间截(毫秒级)
老程序员学C# (二)------连接SQL2005 数据库
    将上面的按钮控件名字改成hellword,然后我们再新建一个按钮,名称改为“SQLdatabase”,下来我们就开始建立最简单的数据库连接测试。    首先确认数据库是否连接正确:    打开SQL Server 2005 Management Express,会弹出窗口要求连接,如图:         选择连接即可,在打开的数据库中建立一个新的数据库“te