积极答复者
数据库表中“自动编号”类型的号码,怎么提取

问题
-
我有一个通讯录ACCESS数据库,其中ID的数据类型“自动编号”。输入完成后,我怎么才能定位记录,确定我所需记录的ID编号。
数据库表的结构如下:
字段,数据类型
ID,自动编号
name,字符
Company,字符
输入时,只要输入name和Company就可以了,系统会自动ID号。
这时我要提取ID,不知怎么才能做到?!
我已经写好的代码如下:
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;";
strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; //连接数据库字符串string strSqlIns = "INSERT INTO Name(FirstName,LastName,Sex,Company) VALUES('";
strSqlIns += ttbFirstName.Text + "','" + ttbLastName.Text + "'," + varSex + ",'" + ttbCompany.Text + "')"; //操作表字符串
OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库
OleDbCommand commDbabIns = new OleDbCommand(strSqlIns, connDbab);
connDbab.Open();
commDbabIns.ExecuteNonQuery();
Response.Write("<script language=javascript>alert('新添了一位客户信息!');</script>");
ttbCompany.Text = ""; ttbFirstName.Text = ""; ttbLastName.Text = ""; //将文本框重置为空//提取ID号的代码,如何写?
connDbab.Close();
答案
-
Hi:
试试这样:
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; //连接数据库字符串 string strSqlIns = "INSERT INTO Name(FirstName,LastName,Sex,Company) VALUES('"; strSqlIns += ttbFirstName.Text + "','" + ttbLastName.Text + "'," + varSex + ",'" + ttbCompany.Text + "')"; //操作表字符串 OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库 OleDbCommand commDbabIns = new OleDbCommand(strSqlIns, connDbab);
connDbab.Open(); commDbabIns.ExecuteNonQuery(); commDbabIns.CommandText="Select @@Identity"; object obj = commDbabIns.ExecuteScalar();//提取ID号的代码 Response.Write("<script language=javascript>alert('新添了一位客户信息!');</script>"); ttbCompany.Text = ""; ttbFirstName.Text = ""; ttbLastName.Text = ""; //将文本框重置为空 connDbab.Close();
Shadowと愉快なコード達
Please correct me if my concept is wrong
- 已编辑 Shadow .Net 2011年7月17日 3:45
- 已标记为答案 乐此不疲 2011年7月17日 12:32
全部回复
-
Hi:
试试这样:
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; //连接数据库字符串 string strSqlIns = "INSERT INTO Name(FirstName,LastName,Sex,Company) VALUES('"; strSqlIns += ttbFirstName.Text + "','" + ttbLastName.Text + "'," + varSex + ",'" + ttbCompany.Text + "')"; //操作表字符串 OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库 OleDbCommand commDbabIns = new OleDbCommand(strSqlIns, connDbab);
connDbab.Open(); commDbabIns.ExecuteNonQuery(); commDbabIns.CommandText="Select @@Identity"; object obj = commDbabIns.ExecuteScalar();//提取ID号的代码 Response.Write("<script language=javascript>alert('新添了一位客户信息!');</script>"); ttbCompany.Text = ""; ttbFirstName.Text = ""; ttbLastName.Text = ""; //将文本框重置为空 connDbab.Close();
Shadowと愉快なコード達
Please correct me if my concept is wrong
- 已编辑 Shadow .Net 2011年7月17日 3:45
- 已标记为答案 乐此不疲 2011年7月17日 12:32
-
程序能运行通过,但你加的几行似乎没有执行
bool varSex = radlSex.Items[0].Selected; //获取RadioButtonList选中的项目
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;";
strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; //连接数据库字符串string strSqlIns = "INSERT INTO Name(FirstName,LastName,Sex,Company) VALUES('";
strSqlIns += ttbFirstName.Text + "','" + ttbLastName.Text + "'," + varSex + ",'" + ttbCompany.Text + "')"; //操作表字符串
OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库
OleDbCommand commDbabIns = new OleDbCommand(strSqlIns, connDbab);
connDbab.Open();
commDbabIns.ExecuteNonQuery();//以下三行似乎没有执行
commDbabIns.CommandText = "Select @@Identity";
object obj = commDbabIns..ExecuteScalar();//提取ID号的代码。此行有一条错误信息:“应输入标识符”
Response.Write("<script language=javascript>alert('新客户ID:"+obj.ToString()+"');</script>");
Response.Write("<script language=javascript>alert('新添了一位客户信息!');</script>");
ttbCompany.Text = ""; ttbFirstName.Text = ""; ttbLastName.Text = ""; //将文本框重置为空
connDbab.Close(); -
Hi:
1. 如果您的数据表中有自动编号栏位,则在新增一笔资料后,执行Select @@Identity,会获得刚刚新增资料自动编号栏位的值
2. 因为commDbabIns.ExecuteScalar(); 回传Object
Shadowと愉快なコード達
Please correct me if my concept is wrong