C# と sql を使用して ASP.NET MVC 4 で作業しています。
私は2つのテーブルを持っています:
CREATE TABLE [dbo].[Mem_Basic] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Mem_NA] VARCHAR (100) NOT NULL,
[Mem_Occ] VARCHAR (200) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
と
CREATE TABLE [dbo].[Mem_Details] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Mem_Id] INT NOT NULL,
[Mem_Role] VARCHAR (250) NOT NULL,
[Mem_Email] VARCHAR (50) NULL,
[Mem_MPh] VARCHAR (15) NULL,
[Mem_DOB] DATE NULL,
[Mem_BGr] NCHAR (10) NULL,
[Mem_WAnn] DATE NULL,
[Mem_Spouse] VARCHAR (75) NULL,
[Mem_Web] VARCHAR (300) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
最初のテーブルにデータを挿入し、同じ作成ボタンを使用して、テーブルから新しく挿入された ID をMem_Basic
テーブルに挿入したいと考えています。Mem_Id
Mem_Details
その後、最初のテーブルの ID を返したいと思います。次のc#コードを使用しています
public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
using (SqlConnection con=new SqlConnection(Config.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na, Mem_Occ) output INSERTED.Id VALUES(@na, @occ)", con))
{
cmd.Parameters.AddWithValue("@na", Mem_NA);
cmd.Parameters.AddWithValue("@occ", Mem_Occ);
con.Open();
int modified = (int)cmd.ExecuteScalar();
using (SqlCommand cmd1 = new SqlCommand("INSERT INTO Mem_Details (Mem_Id, Mem_Role) VALUES (@id, @role)", con))
{
cmd.Parameters.AddWithValue("@id", modified);
cmd.Parameters.AddWithValue("@role","Member");
}
if (con.State == System.Data.ConnectionState.Open) con.Close();
return modified;
}
}
}
これは、データを最初のテーブルに挿入するだけで、ID を返します。