2014-09-18 2 views
1

Я изо всех сил пытаюсь заставить свой запрос работать в C# usng select * в statement, который скопирует данные таблицы и создаст новую таблицу.Ошибка при использовании select * in statement в C#

using (SqlConnection con = new SqlConnection(connectionstring)) 
     { 
      con.Open(); 
      using (SqlCommand cmd = new SqlCommand("select pp.upc as upc , pp.description as      Description,sp.qty_onhand as Qty" + 
          "into TempProductProfile from product_profile pp" + 
          "inner join store_products sp on" + 
          "pp.upc = sp.upc" + 
          "order by pp.description", con)) 

        cmd.executenonquery(): <-- got error here   
     } 

Может ли кто-нибудь указать мне правильный путь ?. благодаря

+3

В этом случае, это было не слишком трудно понять, что происходит неправильно _ (иногда нужно просто вторая пара глаз на ваш код) _, но в будущем, пожалуйста, включите исключение/ошибку в свой вопрос. –

+0

В следующий раз создайте стенографическую строку для своего sql http://stackoverflow.com/questions/13155449/how-to-do-a-verbatim-string-literal-in-vb-net – Steve

+0

благодарите грант за указание – Androidz

ответ

3
using (SqlConnection con = new SqlConnection(connectionstring)) 
     { 
      con.Open(); 
      using (SqlCommand cmd = new SqlCommand(@"select pp.upc as upc , pp.description as      Description,sp.qty_onhand as Qty 
          into TempProductProfile from product_profile pp 
          inner join store_products sp on 
          pp.upc = sp.upc 
          order by pp.description", con)) 

        cmd.executenonquery(): <-- got error here   
     } 

Напишите запрос как this.With @ вы можете написать строку на более чем одной строке! Проблема заключается в том, что в ответе Grant Winney о неправильной конкатенации строк.

+1

An фактическое решение. +1 – paqogomez

+0

это работает для меня. Большое спасибо mybirthname – Androidz

+0

@Androidz добро пожаловать! Удачи с проектом. – mybirthname

3

Ваш запрос, как сейчас, будет выглядеть примерно так:

... sp.qty_onhand в Qtyinto TempProductProfile из product_profile ppinner присоединиться ...

You нужно вставить пробел в начале каждой строки вы конкатенации:

using (SqlCommand cmd = new SqlCommand(
    "select pp.upc as upc , pp.description as Description,sp.qty_onhand as Qty" + 
    " into TempProductProfile from product_profile pp" + 
    " inner join store_products sp on" + 
    " pp.upc = sp.upc" + 
    " order by pp.description", con)) 
0

Поместите пробел в начале каждой строки текста, за исключением первого.

Как у вас нет каких-либо пробелов между вашими строками текста, ваш SQL является

select pp.upc as upc , pp.description as Description,sp.qty_onhand as Qtyinto TempProductProfile from product_profile ppinner join store_products sp onpp.upc = sp.upcorder by pp.description