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 | 类型标识 | 自动编号

M0005 | 中号 | 5

M0006 | 中号 | 5

T0001 | T | 1

T0002 | T | 2

Y0003 | 是 | 3

Y0004 | 是 | 4

但我需要结果:

前任。

  • 第一次导入。

refId | 类型标识 | 自动编号

M0001 | 中号 | 1

M0002 | 中号 | 2

T0001 | T | 1

T0002 | T | 2

Y0001 | 是 | 1

Y0002 | 是 | 2

  • 第二次导入。

refId | 类型标识 | 自动编号

M0003 | 中号 | 3

M0004 | 中号 | 4

T0003 | T | 3

T0004 | T | 4

Y0003 | 是 | 3

Y0004 | 是 | 4

这是在数据库中总结的。

refId | 类型标识 | 自动编号

M0001 | 中号 | 1

M0002 | 中号 | 2

M0003 | 中号 | 3

M0004 | 中号 | 4

T0001 | T | 1

T0002 | T | 2

T0003 | T | 3

T0004 | T | 4

Y0001 | 是 | 1

Y0002 | 是 | 2

Y0003 | 是 | 3

Y0004 | 是 | 4

我很抱歉经常提问。

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

4

1 回答 1

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();
}
于 2012-09-18T11:48:18.940 回答