【发布时间】:2018-02-02 15:16:42
【问题描述】:
我有一个名为“代码”的列,它存储在 SQL 中的“varchar”数据类型中。 我想从数组中找到最大代码。
所以,当用户想要添加一个新项目时,程序会自动生成新代码。
在 9 号之前它工作得很好。但是当我在代码中添加“10”时,它仍然将“9”号视为最大值。并再次为新项目显示“10”号。
检索字符串数组中的代码列
string commandString = "SELECT Distinct Code FROM Main_Family";
combobxMCode.Items.Clear();//first clear previous items then refill
// MessageBox.Show(commandString);
SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
sqlCon.Open();
SqlDataReader dr = sqlCmd.ExecuteReader();
while (dr.Read())
{
i = 1;
// Description = dr["Description"].ToString();
combobxMCode.Items.Add(dr[0]);
MCode = new string[] {dr["Code"].ToString()};
}
dr.Close();
查找最大代码,然后显示新的可用代码
int[] IntCode = Array.ConvertAll(MCode, int.Parse);
string MaxCode = (MCode.Max()).ToString();
Next_Code = int.Parse(MaxCode.ToString());
int show_code = Next_Code + 1;
combobxMCode.Text = show_code.ToString();
它将最大代码声明为 9。数组中还存在 10 和 11。
我应该如何从数组中检索真正的最大数?
【问题讨论】:
-
取最长的字符串并排序。
-
您需要将列值转换为 int。类似stackoverflow.com/a/48239464/2946329
-
如果您想要一个数字并对其执行数学运算,请将字段设为以数字开头
标签: c# arrays sql-server-2012