我想生成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。
谢谢!
答案 0 :(得分:0)
如果结果集中没有信息 - dr.Read()不会发生。