if (id != null)
            {
         string str = "insert into 基本档案表(员工编号,所属部门,姓名,性别,民族,籍贯,文化程度,入职时间,工龄,职务,基本工资,专业) values ('" + 员工编号.Text.Trim() + "','" + 所属部门.SelectedValue.Trim() + "','" + 姓名.Text.Trim() + "','" + 性别.Text.Trim() + "','" + 民族.Text.Trim() + "','" + 籍贯.Text.Trim() + "','" + 文化程度.Text.Trim() + "','" + 入职时间.Text.Trim() + "','" + DATEDIFF(year, 入职时间, getdate()) + "','" + 职务.Text.Trim() + "','" + 基本工资.Text.Trim() + "','" + 专业.Text.Trim() + "')";
                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "Data Source=.;Initial Catalog=人力管理;Integrated Security=True";
                conn.Open();
                SqlCommand cmd = new SqlCommand(str, conn);
                 cmd.ExecuteNonQuery();
                 Response.Redirect("Default2.aspx", false);}
这是基本档案插入功能,插入时不显示工资和工龄,查看时可以。但里边的基本工资,我想用入职时间判断工龄,然后用文化程度、工龄判断基本工资,实现语句如下:
SELECT   DATEDIFF(year,入职时间,   getdate())   AS   工龄 
FROM   基本档案表
update 基本档案表 set 基本工资 = (
case when 文化程度='硕士' then 2000+500*工龄 
when 文化程度='本科' then 1500+300*工龄
 when 文化程度='大专' then 1300+150*工龄 
else 400+120*工龄 end)但不知如何实现插入到数据库中永久保存,请大家帮帮忙!谢谢啦!

解决方案 »

  1.   

    SELECT DATEDIFF(year,入职时间, getdate()) AS 工龄  
    FROM 基本档案表update 基本档案表 set 基本工资 = (
    case when 文化程度='硕士' then 2000+500*工龄  
    when 文化程度='本科' then 1500+300*工龄
     when 文化程度='大专' then 1300+150*工龄  
    else 400+120*工龄 end)
    上面都以实现了插入功能,主要是 这两个,工龄和工资的处理,这两个功能这样实现可以吗?
      

  2.   

    为什么要用后后面哪个语句啊,直接一个insert语句就完成了。
    insert into 基本档案表(。) select 
      

  3.   

    我不想再插入时显示工龄和工资,直接在数据库中执行操作,然后再工资表中调用查询
    用insert into 还需执行插入关键字员工编号,但还是重复了啊
      

  4.   

    update 基本档案表 set 基本工资 = (
    case when 文化程度='硕士' then 2000+500*(DATEDIFF(year,入职时间, getdate()) )  
    when 文化程度='本科' then 1500+300**(DATEDIFF(year,入职时间, getdate()) )
     when 文化程度='大专' then 1300+150**(DATEDIFF(year,入职时间, getdate()) )
    else 400+120**(DATEDIFF(year,入职时间, getdate()) ) end) 试试,一个update语句可以的,