0

これは、データを挿入するための SQL Server ストアド プロシージャです。

Alter proc insert_stud1 
    @name varchar(20),
    @mobile int,
    @id int output
as
Begin 
    insert into stud1 values (@name, @mobile)

    set @id = @@identity;
End

対応するC#

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@name",SqlDbType.VarChar,20);
cmd.Parameters.Add("@mobile",SqlDbType.Int);
var ret = cmd.Parameters.Add("@i", SqlDbType.Int);
cmd.Parameters["@name"].Value=textBox1.Text;
cmd.Parameters["@mobile"].Value=int.Parse(textBox2.Text);

cmd.CommandText="insert_stud1";

con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show(ret.Value.ToString());
con.Close();
4

2 に答える 2

3

正しいパラメーター名を指定し、パラメーターの方向を出力として設定する必要があります

SqlParameter idParameter= new SqlParameter("@id", SqlDbType.Int);
idParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(idParameter);

行の後:cmd.ExecuteNonQuery();結果IDは以下のように取得できます

int id = int.Parse(cmd.Parameters["@id"].Value.ToString());
于 2013-03-13T05:48:49.367 に答える
1

「@id」の代わりに「@i」を送信します

于 2013-03-13T05:43:56.637 に答える