Попробуйте добавить
SELECT SCOPE_IDENTITY()
после оператора вставки, где вы хотите вернуть Id вставленной строки и использовать ExecuteScalar ()
Пожалуйста, обратитесь к следующей ссылке
http://msdn.microsoft.com/en-us/library/ms190315.aspx
Ваша вставка в ImaginiWishlist
намного лучше, так как вы используете параметры, вы должны сделать то же самое для Planuri
и передать ваши три значения в качестве параметров. Кроме того, я полагаю, что вам не хватает списка имен столбцов в операторе вставки для Planuri
, вам нужно добавить список столбцов, которые вы обновляете в вставке, непосредственно перед values
.
Мне придется угадать, так как я не знаю структуру вашего стола, но что-то вроде:
SqlCommand cmd = new SqlCommand("insert into Planuri (NumeDorinta, Target, PretE) values('" + tbNumeDorinta.Text + "','" + tbTarget.Text + "','" + tbPretE.Text + "'); SELECT SCOPE_IDENTITY();", con);
и чтобы добавить значения в качестве параметров, я предполагаю, что в вашей таблице есть datetime для tbTarget и float для tbPertE, поэтому вы должны сделать что-то подобное для даты и времени, где вы измените CultureInfo
на правильный для вашей страны
cmd.Parameters.AddWithValue("@TargetDate", Convert.ToDateTime(tbTarget.Text, CultureInfo.GetCulture("en-GB")))
или вы можете попробовать это, если ваша дата в tbTarget.Text имеет определенный формат, где вы должны изменить "dd / MM / yyyy" на ваш формат.
cmd.Parameters.AddWithValue("@TargetDate", DateTime.ParseExact(tbTarget.Text, "dd/MM/yyyy", CultureInfo.Invariant))
Для поплавка попробуйте использовать:
cmd.Parameters.AddWithValue("@PretE", Convert.ToSingle(tbPretE.Text))