JustinRondo 2016-02-11 07:38 采纳率: 100%
浏览 1566
已采纳

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条回答 默认 最新

  • threenewbee 2016-02-11 13: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'

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?