Я пытаюсь выполнить самую простую реализацию вставки в моем проекте для обучения и показать ее моим будущим работодателям. Я знаю, что я должен поместить его на другой уровень и назвать его и т. Д., Но я честно не имею достаточно времени, и мне нужно научиться делать это легко.Выбор значения из одной таблицы для вставки идентификатора строки в другую в asp.net
У меня уже есть имя «@username», хранящееся в SESSION ["USER"], теперь мне нужно вставить в таблицу. ЗАКАЗЫВАЕТ сумму и идентификатор продукта, вещь - это имя продукта в таблице ПРОДУКТ.
У меня есть имена продуктов в выпадающем списке, поэтому ПОЛЬЗОВАТЕЛЬ выбирает значение, набирает сумму, а затем нажимает кнопку «Купить» и сохраняет ЗАКАЗ в базе данных.
Каков правильный способ запроса этой команды SQL? Я думал, что SqlCommand будет делать трюк, но я все еще не совсем уверен, как это выразить.
Пример из базы данных:
CREATE TABLE ORDERS
(
_OrderID int not null identity (1,1) primary key,
_Date datetime null,
_Quantity bigint null,
_ProdID int foreign key references PRODUCTS (_ProductID),
_UserID int foreign key references USERS (_UserID)
)
GO
CREATE TABLE PRODUCTS
(
_ProductID int not null identity(1,1) primary key,
_ProdName nchar (200) null,
_StockUnits int,
_SuppID int foreign key references SUPPLIERS (_SuppID)
)
GO
CREATE TABLE USERS
(
_UserID int not null identity(1,1) primary key,
_UserEmail varchar (35) null,
_UserName varchar (30) not null,
_UserPass varchar (30) not null,
_Name varchar (100),
_Phone varchar (20) null,
_Address varchar (150) null,
_Authority int not null,
_Special bit null
)
GO
protected void btnBuy_Click(object sender, EventArgs e)
{
//obviously incomplete.
string usrQuery = Session["NOMUSU"].ToString();
SqlConnection oConnection = new SqlConnection("Server=.\\SQLExpress;AttachDbFilename=L:\\Apps\\VS Projects\\Carnisoftix\\CarniDb.mdf;Database=CarniDb;Trusted_Connection=Yes;");
SqlCommand oCom = new SqlCommand("INSERT INTO ORDERS _Date, _Quantity VALUES " + " (" + DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss") + ", "+ txtAmount.Text
}
PD: Должен ли я сделать хранимую процедуру для этой простой задачи?
Это действительно хорошая идея! – octohedron
Да, и вы, возможно, захотите исправить этот sql, который у вас есть. Либо вы используете хранимую процедуру, либо если вы ее не любите, по крайней мере параметризуйте этот запрос, например: 'INSERT INTO ORDERS (_Date) VALUES (@date)'. [См. Этот простой для понимания пример] (http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html) –
Хорошо, что им, им делая это простым тупым способом: некоторое время проходит через список, упорядоченный идентификатором продукта, и когда его значение == до выбранного значения перестает добавлять к переменной int, а затем я использую это для хранения идентификатора продукта в базе данных. благодарит вас. – octohedron