2015-04-21 3 views
1

две таблицы базы данных: 1) Клиент (ClientID, Имя) 2) Покупка (ClientID, имя)C# asp.net SQL над таблицами

Ситуация: Войти страница -> онлайн покупки страница (Сессия с именем пользователя)

Задача: Как я могу сделать SQL по разным таблицам? Я хочу вставить Clientno в таблицы Покупки, когда клиенты совершают покупку.

Сбой SQL: (Сеанс хорошо)

string id = Convert.ToString(Session["UserID"]); 

string query1 = "insert int Purchase ([Clientno]) values('"[email protected]+"') where [select Clientno where name ='"+id+"')"; 
+0

Вставить int или вставить? – Donnelle

+0

, но кажется, что это не логически работает –

+0

Вам нужно сообщить свое конкретное сообщение об ошибке и т. Д. – Donnelle

ответ

1

Вы можете вставить результаты отборного в таблицу без оговорки VALUES, поэтому прямой SQL будет выглядеть примерно так (я изменил свой запрос от Clientno к ClientId на основе ваших определений таблицы до верхней):

INSERT INTO Purchase ([ClientID]) 
SELECT ClientID 
    FROM Client 
    WHERE Name = @ID 

вы действительно хотите использовать параметризованные запросы, хотя и не строить свой SQL инлайн, как вы делаете.

Я не знаю, какие другие поля вы можете захотеть вставлять, но это общий формат такого запроса.

+0

INSERT INTO Purchase ([ClientID]) <----------- как сохранить его в переменной «ClientID» ? SELECT ClientID ОТ клиента ГДЕ Имя = @ID –

+0

'DECLARE @ClientID int; SELECT @ClientID = ClientID FROM Client WHERE Name = @ ID' – Danny

+0

um Ваша вставка SQL кажется небольшой проблемой, что я не могу нормально функционировать –

Смежные вопросы