应用一个单击事件将数据插入A表后马上取出它ID号再放入B表如何实现?
我的思路是:表中ID自增.单击按钮将员工信息插入员工表后,马上取出刚插入信息的ID号作为员工初始用户名.初始密码另设.再将它们入储存用户名了密码表中.,插入成功后就将自动生成的用户名和密码显示在弹出的窗口中.两表通过ID相联
我用了几种方法都能实现插入员工表但不能插入另一表.
用下面的方法似乎可以了.但出现了一点问题.
代码如下:
......
if (user.insertEMP(ep2))//如果插入员工信息为真. 并不能直接取ID号.于是用到 max(companyid)+1
{
using (SqlConnection con = db.connection())
{
//下面代码本是在实体方法中完成的.为了直观换成了这样:
SqlCommand cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "select max(companyid)+1 from employeeinfo";
SqlDataReader idread = cmd.ExecuteReader();
Session["CompanyID"] =idread;//
idread.Close();
con.Close();
SqlCommand cmd1 = new SqlCommand("insert_employenter_1", con);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add(new SqlParameter("@CompanyID_1", SqlDbType.Int));
cmd1.Parameters["@CompanyID_1"].Value = int.Parse(Session["CompanyID"].tostring());//这里出错.显示为: 输入字符串的格式不正确。
cmd1.Parameters.Add(new SqlParameter("@username_2", SqlDbType.VarChar));
cmd1.Parameters["@username_2"].Value = Session["CompanyID"].ToString();
cmd1.Parameters.Add(new SqlParameter("@password_3", SqlDbType.VarChar));
cmd1.Parameters["@password_3"].Value = "8888";
try
{
con.Open();
cmd1.ExecuteNonQuery();
Response.Redirect("empNandP.aspx?comanyid='" + Session["companyid"].ToString() + "'"); //empNandP.aspx此窗口显示初始名和密码.
con.Close();
}
另外一个小问题是..用了一个图片按钮ImageButton1.
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
this.ImageButton1.Attributes.Add("onclick", "window.open('jibiesezi.aspx','','width=300,height=300')");
}
奇怪的是.我单击(双击)第一次却没什么反应.非要单击第二次才会弹出这个窗口..代码也似乎没有什么错误.不知怎么的.
因刚接触.NET不久.不懂的很多.望朋友们不吝赐教!!
------解决方案--------------------因为你第一次单击是给这个按钮添加 onclick事件 再点一次它才执行window.open
所以你的 this.ImageButton1.Attributes.Add("onclick", "window.open( 'jibiesezi.aspx ', ' ', 'width=300,height=300 ')")这句应放在page_load里(或者至少在你要它执行之前)
------解决方案--------------------好的 create proc AddEmployee
(
参数
)
declare @employeeid int
insert into A
select @employeeid=@@identity
insert into b
就行了撒 把该传的参数都传进来