2013-04-27 4 views
0

Я пытаюсь получить «customer_id» из таблицы Customer и вставить его вКак получить данные из таблицы и вставить в другую таблицу?

fare_tariff(tariff_id, customer_id, total_price) 

Так я извлечь customer_id из таблицы Customer, как показано ниже:

using (SqlCommand command = new SqlCommand("SELECT customer_id FROM Customer WHERE UserName = '" + username + "' Password = '"+password +"' ", connection)) 
{ 
    string cust_id = customer_id.ToString(); 
    SqlDataReader myReader = command.ExecuteReader(); 

    if (myReader.Read()) 
    { 
     cust_id = myReader["customer_id"].ToString(); 
    } 

    int c_id = Convert.ToInt32(cust_id); 

    myReader.Close(); 
    custID(c_id); 
} 

и вставьте customer_id в таблицу fare_tariff как ниже:

using (SqlCommand command = new SqlCommand("INSERT INTO flight_reservation(tariff_id, customer_id, total_price) VALUES(@val1,@val2,@val3)", connection)) 
{ 

    command.Parameters.Add("@val1", SqlDbType.Int).Value = tariff_id; 
    command.Parameters.Add("@val2", SqlDbType.Int).Value = customer_id; 
    command.Parameters.Add("@val3", SqlDbType.VarChar).Value = total_price.ToString(); 

    command.ExecuteNonQuery(); 
} 

Я объявила customer_id как переменную для хранения customer_id.

Проблема заключается в том, что значение тарификации и total_price вставлено успешно, но столбец customer_id еще не установлен.

Помощь нужна.

+0

свою полную КОДУ трудно понять, ЧТО U ДЕЛАЕТ ОТСЮДА –

+0

Если идентификатор клиента имеет нулевое значение, что вы думаете вы должны это сделать? –

+0

Как переносится значение из 'c_id' в' customer_id'? –

ответ

0

Получение данных клиенту и возврат строки за строкой обратно на сервер может привести к большим накладным расходам. Там лучше способ сделать то же самое, так называемый «вставка/выберите» запрос:

using (SqlCommand command = connection.CreateCommand()) { 
    command.CommandText = 
     "insert into Flight_Reservation(\n" + 
     "   Customer_Id,\n" + 
     "   Tariff_Id,\n" + 
     "   Total_Price)\n" + 
     "  select Customer_Id,\n" + 
     "   @prm_Tariff_Id,\n" + 
     "   @prm_Total_Price\n" + 
     "  from Customer\n" + 
     "  where (UserName = @prm_UserName)\n" + 
     "   (Password = @prm_Password)"; 

    command.Parameters.Add("@prm_Tariff_Id", SqlDbType.VarChar, 80).Value = tariff_id; 
    command.Parameters.Add("@prm_Total_Price", SqlDbType.VarChar, 80).Value = total_price.ToString(); 
    command.Parameters.Add("@prm_UserName", SqlDbType.VarChar, 80).Value = username; 
    command.Parameters.Add("@prm_Password", SqlDbType.VarChar, 80).Value = password; 

    command.ExecuteNonQuery(); 
    } 
Смежные вопросы