私は連絡先からIDを送信するために、連絡先を顧客に変換するために使用できるVisual Studioで連絡先情報フォームを使用していますちょうど他のフォームに作成され、これを行うには私はSCOPE_IDENTITY()
を使用してIDを返すストアドプロシージャを作成しました。それはSQL Serverで動作し、正確にIDを返しますが、取得しようとすると、intを文字列に変換し、テスト用のラベルに0を書き込みます。SCOPE_IDENTITY()を使用してIDの値が0として返される
私のストアドプロシージャは次のとおりです。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE IdentityTest
@FirstName varchar(50),
@LastName varchar(50),
@id int output
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Employees (FirstName, LastName)
VALUES (@FirstName, @LastName)
SET @id = SCOPE_IDENTITY()
RETURN @id
END
私のform.aspx.csには、DBにアクセスする次のコードがあります。
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cons = new SqlCommand("IdentityTest", cncon);
cons.CommandType = CommandType.StoredProcedure;
cons.Parameters.Add("@FirstName", SqlDbType.NVarChar);
cons.Parameters.Add("@LastName", SqlDbType.NVarChar);
cons.Parameters.Add("@id", SqlDbType.Int);
cons.Parameters["@FirstName"].Value = nom.Value;
cons.Parameters["@LastName"].Value = dirclie.Value;
cons.Parameters["@id"].Value = IdCliente;
string IdClientesString = IdCliente.ToString();
cncon.Open();
cons.ExecuteNonQuery();
Label1.Text = IdClientesString;
cncon.Close();
}
この回答を参考にしてください - http://stackoverflow.com/a/290772/27825 –