我无法为用户生成ID

时间:2011-07-19 11:50:12

标签: asp.net visual-studio-2008

我想生成id。我的应用程序在3层工作(使用asp.net& vs 2008)。所以要做到这一点,我正在从class1.cs文件中编写的用户界面(webpg1.aspx.cs)调用一个方法。我假设目前数据库中没有记录,因此id可以是1,2,3 ... n。所以请让我在哪里出错。 来自Call

webpg1.aspx.cs
int verify = j.insertReg(ad,un,pwd); 

实施class1.cs

public int regUser(int id, string un, string pwd)
{
  int cms = 0; 
  int id1 = 0;
  int c2 = openDb();

  if (c2 < 0)
  {
    if (ad ==0)
      id1 = callgenId(ad);

   cm = new SqlCommand("INSERT INTO regAgnt VALUES('"
                                + id1 +"','"+ un +"','"+ pwd +"')",cn);
    cms = cm.ExecuteNonQuery();
  }
  else
  {
    cms = c2;
  }

  return cms;
}

private int callgenId(int id)
{
  int idi = 0;
  cm = new SqlCommand("select MAX(aid) from regAgnt", cn);
  dr = cm.ExecuteReader();
  while (dr.Read())
  {
    if(Convert.ToInt32(dr[0])== 0)
      idi += 1;

    dr.Close();
   }
   return idi;
}

它在表中产生0的输出,我还将默认值绑定为表中的0。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果结果集中没有信息 - dr.Read()不会发生。