try something like (you need to fill in the details):cmdtxt = "insert into t_xxnr (...) values (@bt,.....) ; select scope_identity()"; SqlCommand mysql=new SqlCommand(cmdtxt,this.sqlConnection1); //parameters here mysql.Parameters.Add("@bt",this.txt_bt.Text); //.... this.sqlConnection1.Open(); int_xxid =(int)mysql.ExecuteScalar(); this.sqlConnection1.Close();
SqlCommand mysql=new SqlCommand(cmdtxt,this.sqlConnection1);
//parameters here
mysql.Parameters.Add("@bt",this.txt_bt.Text);
//....
this.sqlConnection1.Open();
int_xxid =(int)mysql.ExecuteScalar();
this.sqlConnection1.Close();
我现将我的解决方案贴出:
1、定义存储过程如下:
CREATE PROCEDURE dbo.insertmes
@bt varchar(50),
@nr varchar(1000),
@fj1 varchar(50),
@fj2 varchar(50),
@bz bit,
@czr char(10),
@xxid int OUTPUT
AS
INSERT INTO t_xxnr
(bt, nr, fj1, fj2, bz, sj, czr)
VALUES (@bt, @nr, @fj1, @fj2, @bz, GETDATE(), @czr);
SET @xxid=@@IDENTITY
GO
然后再给存储过程赋参数值,在提交事件中。如下:
SqlCommand mysql=new SqlCommand("dbo.insertmes",this.sqlConnection1);
mysql.CommandType=CommandType.StoredProcedure;
mysql.Parameters.Add(new SqlParameter("@bt",SqlDbType.NVarChar,50));
mysql.Parameters["@bt"].Value=this.txt_bt.Text;
mysql.Parameters.Add(new SqlParameter("@nr",SqlDbType.NVarChar,1000));
mysql.Parameters["@nr"].Value=this.txt_nr.Text;
mysql.Parameters.Add(new SqlParameter("@fj1",SqlDbType.NVarChar,50));
mysql.Parameters["@fj1"].Value=filename1;
mysql.Parameters.Add(new SqlParameter("@fj2",SqlDbType.NVarChar,50));
mysql.Parameters["@fj2"].Value=filename2;
mysql.Parameters.Add(new SqlParameter("@bz",SqlDbType.Bit));
mysql.Parameters["@bz"].Value=0;
mysql.Parameters.Add(new SqlParameter("@czr",SqlDbType.Char,10));
mysql.Parameters["@czr"].Value=username;
mysql.Parameters.Add(new SqlParameter("@xxid",SqlDbType.Int,4));
mysql.Parameters["@xxid"].Direction=ParameterDirection.Output;
this.sqlConnection1.Open();
this.sqlInsertCommand1.ExecuteNonQuery();
int_xxid=(int)mysql.Parameters["@xxid"].Value;
谢谢!请帮助将我结贴