如何使用max max作为自动编号?

时间:2012-09-18 10:57:45

标签: c# windows winforms linq c#-4.0

我需要使用函数max运行自动编号或它的工作。

我使用导入文件excel到datagridview并生成字段'refId'不重复。

代码:

int count = 1;

sb = new StringBuilder();
sb.Append("SELECT COUNT(*) FROM tableAset");

string sql = sb.ToString();
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.Connection = Conn;

count = (int)cmd.ExecuteScalar();
int newCount = count;

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    newCount = newCount + 1;
    dataGridView1.Rows[i].Cells[0].Value = cbType.Text + "000" + newCount;
    dataGridView1.Rows[i].Cells[8].Value = cbType.Text;
    dataGridView1.Rows[i].Cells[9].Value = "000" + newCount;
}

cmd.ExecuteNonQuery();

现在结果。

refId | typeId | AUTONUM

M0005 | M | 5

M0006 | M | 5

T0001 | T | 1

T0002 | T | 2

Y0003 | Y | 3

Y0004 | Y | 4

但我需要结果:

实施例。

  • 导入第一次。

refId | typeId | AUTONUM

M0001 | M | 1

M0002 | M | 2

T0001 | T | 1

T0002 | T | 2

Y0001 | Y | 1

Y0002 | Y | 2

  • 第二次导入。

refId | typeId | AUTONUM

M0003 | M | 3

M0004 | M | 4

T0003 | T | 3

T0004 | T | 4

Y0003 | Y | 3

Y0004 | Y | 4

这是数据库中的总结。

refId | typeId | AUTONUM

M0001 | M | 1

M0002 | M | 2

M0003 | M | 3

M0004 | M | 4

T0001 | T | 1

T0002 | T | 2

T0003 | T | 3

T0004 | T | 4

Y0001 | Y | 1

Y0002 | Y | 2

Y0003 | Y | 3

Y0004 | Y | 4

我经常抱歉。

非常感谢你的时间。 :))

1 个答案:

答案 0 :(得分:4)

public int Autogenerate()
{
    con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetCurrentDirectory() + "/CleaningTroopers.mdb");
    con.Open();
    string str4 = "select iif(isnull(max(uom_code)),1000,max(uom_code)+1) from uom_master ";
    cmd = new OleDbCommand(str4, con);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    return Convert.ToInt32(dt.Rows[0][0]);
    con.Close();
}