protected  void  btnSave_Click(object  sender,  System.EventArgs  e)  
       {  
               dim  d  =  new  dim();  
               d.cs  =  this.cs.Text;  
               SqlConnection  con  =  Operate.createCon();  
               string  strSQL  =  @"insert  into  bill  (bill_no)  values  ('"  +  d.cs  +  "')SELECT  @@IDENTITY  AS  'Identity'";  
             SqlCommand  cmd  =  new  SqlCommand(strSQL,  con);  
               con.Open();  
               cmd.ExecuteNonQuery();  
               int  B_id  =  Convert.ToInt32(cmd.ExecuteScalar());//取得刚才bill入库时候的那个记录的id值,但是为什么每回都为0  
               con.Close();  
               //取得当前DataGrid中的数据  
               ReverseBind();  
               ReverseSecBind();  
               //入库,把数据写入库里面  
               for  (int  i  =  0;  i  <  arylistSql.Count;  i++)  
               {  
                       SqlConnection  con1  =  Operate.createCon();  
                       string  strSQL1  =  arylistSql[i].ToString();//是个循环入库  
                       SqlCommand  cmd1  =  new  SqlCommand(strSQL1,  con1);  
                       con1.Open();  
                       cmd1.ExecuteNonQuery();  
                       string  strSQL2  =  "update  bill_flight  set  bill_autoid='"  +  B_id  +  "'";  
                       string  strSQL3  =  "update  diary  set  bill_autoid='"  +  B_id  +  "'";  
 
               }  大家帮我看看。我应该怎么写我要把上面那个bill表里的id  存在另外两个表里谢谢大家,我的QQ是3208800  
         }

解决方案 »

  1.   

    用@@identity取得最近生成的表识
      

  2.   

    select max(id) as maxid from bill用这个语句取最大id写个方法 包含这个,然后调用就可以了
      

  3.   

    我用了啊。取得了,B_id就是那个字段的id,我想把这个id存在另外两个库里对吗
      

  4.   

    B_id这个当前的id已经出来了。但是我不知道怎么在入到另两个两表里
      

  5.   

    @@IDENTITY改成
    scope_identity(拼写不一定正确,具体写法自己看帮助)
      

  6.   

    string strSQL=@"insert  into  bill  (bill_no)  values  ('"  +  d.cs  +  "');UPDATE bill_flight  set  bill_autoid=@@IDENTITY;UPDATE diary  set  bill_autoid=@@IDENTITY;";  
                 SqlCommand  cmd  =  new  SqlCommand(strSQL,  con);  
                 con.Open();  
                 cmd.ExecuteNonQuery(); 当然,也可以建个触发器来操作
      

  7.   

    string strSQL = @"insert into bill (bill_no) values ('" + d.cs + "')SELECT @@IDENTITY AS 'Identity'";
    我想把他分成两个语句写怎么写呀
      

  8.   

    insert into bill (bill_no) values ('" + d.cs + "')SELECT @@IDENTITY AS 'Identity'
    这本来就是两句t-sql的dml语句. sql会自动分的.
      

  9.   

    string strSQL = @"insert into bill (bill_no) values ('" + d.cs + "')SELECT @@IDENTITY AS 'Identity'";
    我用这个叉入的时候。bill表里总是叉入两条记录。这是为什么啊。我的要求是在bill叉入一个记录。取得他的id 我怎么改才是叉入一条呢
      

  10.   

    cmd.ExecuteNonQuery();  
    int  B_id  =  Convert.ToInt32(cmd.ExecuteScalar());你执行了两次,当然是插两条了,昏