You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中对SQL Server取出的点分版本号实现末位加1操作

问题原因

你遇到的报错是因为1.1.2是多段分隔的版本字符串,不是合法的整数/浮点数格式,不能直接用Convert.ToInt32或者转float处理。


修复方案

推荐直接用.NET 内置的Version类处理标准版本号,修改Button1_Click的代码如下:

private void Button1_Click(object sender, EventArgs e)
{
    // 把label里的版本字符串转成Version对象
    Version currentVer = Version.Parse(lbVerionUpdate.Text);
    // 最后一段(Build号)加1,生成新版本
    Version newVer = new Version(currentVer.Major, currentVer.Minor, currentVer.Build + 1);
    // 更新label显示
    lbVerionUpdate.Text = newVer.ToString();

    // 注意:如果需要把更新后的版本号存回SQL Server,补充下面的更新逻辑即可
    // string maincon = ConfigurationManager.ConnectionStrings["Connstring"].ConnectionString;
    // using (SqlConnection sqlconn = new SqlConnection(maincon))
    // {
    //     sqlconn.Open();
    //     string updateSql = "update tbl_Version set Version = @NewVer";
    //     SqlCommand updateComm = new SqlCommand(updateSql, sqlconn);
    //     updateComm.Parameters.AddWithValue("@NewVer", newVer.ToString());
    //     updateComm.ExecuteNonQuery();
    // }
}

替代实现(适配非标准版本号格式)

如果你的版本号可能超过4段(比如1.1.2.3.4)或者有自定义格式,可以用字符串分割的方式处理:

private void Button1_Click(object sender, EventArgs e)
{
    string[] verParts = lbVerionUpdate.Text.Split('.');
    // 取最后一段转数字加1
    int lastPart = int.Parse(verParts[verParts.Length - 1]);
    verParts[verParts.Length - 1] = (lastPart + 1).ToString();
    // 拼接回版本字符串
    lbVerionUpdate.Text = string.Join(".", verParts);

    // 同样可根据需求补充存库逻辑
}

额外优化提示

你原有的Checkversion方法里的数据库连接没有做资源释放,建议把SqlConnection、SqlCommand、SqlDataAdapter都用using包裹,避免内存泄漏。

内容的提问来源于stack exchange,提问作者Quân Nè

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:54:02