Я попытался создать процедуру в SQL Server, чтобы можно было передать значение users_id
в другую таблицу.
Однако при заполнении данных asp.net возвращает ошибку, что подзапрос вернул более 1 значения.Вот моя процедура:
CREATE PROCEDURE [dbo].[insert_rent]
@comment_info NVARCHAR(MAX),
@booth_size NVARCHAR(MAX),
@customer_type NVARCHAR(MAX),
@booth_type NVARCHAR(MAX),
@customer_email TEXT,
@customer_mobile TEXT
AS
DECLARE @Users_Id INT
IF EXISTS (SELECT Id FROM Users)
BEGIN
SET @Users_Id = (SELECT Id FROM Users)
INSERT INTO Rent (rent_comments, booth_size, customer_type, booth_type, customer_email, customer_mobile, Users_id)
VALUES (@comment_info, @booth_size, @customer_type, @booth_type, @customer_email, @customer_mobile, @Users_Id)
END
Вот мой код:
String CS = ConfigurationManager.ConnectionStrings["BoothsConnectionString1"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("insert_rent", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("@comment_info", SqlDbType.NVarChar).Value = comment_input.Text;
cmd.Parameters.Add("@booth_size", SqlDbType.NVarChar).Value = size_dropwdown.SelectedValue.ToString();
cmd.Parameters.Add("@customer_type", SqlDbType.NVarChar).Value = customer_type_dropdown.SelectedValue.ToString();
cmd.Parameters.Add("@booth_type", SqlDbType.NVarChar).Value = booth_type_dropdown.SelectedValue.ToString();
cmd.Parameters.Add("@customer_email", SqlDbType.NVarChar).Value = customer_email.Value;
cmd.Parameters.Add("@customer_mobile", SqlDbType.NText).Value = customer_mobilenumber.Value;
cmd.ExecuteNonQuery();
Я вполне уверен, что с моей процедурой что-то не так.