Тема: Як додати запис до бази з двома пов'язаними таблицями?
Є дві таблиці:
CREATE TABLE [dbo].[TableAddressObj] (
[Id] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[NumberObj] INT NULL,
[ZipCode] NCHAR (10) NULL,
[Region] NCHAR (30) NULL,
[City] NCHAR (20) NULL,
[Street] NCHAR (50) NULL,
[Building] NCHAR (5) NULL,
[GeoLatitude] FLOAT (53) NULL,
[GeoLongitude] FLOAT (53) NULL,
[ImageObj] IMAGE NULL,
[place_id] NCHAR (150) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Та:
CREATE TABLE [dbo].[TableWebAddress] (
[Id] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[IPAddress] NCHAR (200) NOT NULL,
[Login] NCHAR (20) NULL,
[Password] NCHAR (20) NULL,
[AddressObjID] UNIQUEIDENTIFIER NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_TableWebAddress_ToTableWebAddress] FOREIGN KEY ([AddressObjID]) REFERENCES [dbo].[TableAddressObj] ([Id]) ON DELETE CASCADE ON UPDATE CASCADE
);
Хочу додати запис до таблиць. Проблема закоментована.
using (SqlConnection cs = new SqlConnection(Properties.Settings.Default.DatabaseObjectConnectionString))
{
cs.Open();
using (SqlCommand command = new SqlCommand("INSERT INTO TableAddressObj (ZipCode, Region, City, Street, Building, GeoLatitude, GeoLongitude, place_id)" +
"VALUES(@ZipCode, @Region, @City, @Street, @Building, @GeoLatitude, @GeoLongitude, @place_id)", cs))
{
command.Parameters.Add(new SqlParameter("ZipCode", textBoxZip.Text));
command.Parameters.Add(new SqlParameter("Region", textBoxRegion.Text));
command.Parameters.Add(new SqlParameter("City", textBoxCity.Text));
command.Parameters.Add(new SqlParameter("Street", textBoxStreet.Text));
command.Parameters.Add(new SqlParameter("Building", textBoxBuilding.Text));
command.Parameters.Add(new SqlParameter("GeoLatitude", Convert.ToDouble(textBoxLat.Text)));
command.Parameters.Add(new SqlParameter("GeoLongitude", Convert.ToDouble(textBoxLng.Text)));
command.Parameters.Add(new SqlParameter("place_id", textBoxPlaceId.Text));
try
{
command.ExecuteNonQuery();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
using (SqlCommand command = new SqlCommand("INSERT INTO TableWebAddress (IPAddress, Login, Password, AddressObjID) VALUES (@IPAddress, @Login, @Password, @AddressObjID)", cs))
{
command.Parameters.Add(new SqlParameter("IPAddress", textBoxIP.Text));
command.Parameters.Add(new SqlParameter("Login", textBoxLogin.Text));
command.Parameters.Add(new SqlParameter("Password", textBoxPassword.Text));
//command.Parameters.Add(new SqlParameter("AddressObjID", "@@IDENTITY")); // Що тут треба, щоб Id бралось з першої таблиці???
try
{
command.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
Чи як то взагалі робиться?
Думав може створити
Guid id = Guid.NewGuid();
та вже і там, і там це значення припасувати?