2015-07-09 2 views
0

Я обновляю таблицу на основе других критериев столбцов таблицы.Обновление таблицы SQL Server CE возвращает ошибку в C#?

В чем проблема в следующем запросе обновления, потому что я получаю эту ошибку:

enter image description here

Запрос я использовал:

try 
{ 
    StockDbConnection dbcon = new StockDbConnection(); 

    SqlCeConnection Conn = new SqlCeConnection(dbcon.ReturnConnection("ConnString")); 
    Conn.Open(); 

    SqlCeCommand command = new SqlCeCommand("UPDATE a SET a.tPrice=(@Quantity) * (b.unitprice)"+ 
      "FROM SALES a"+ 
      "JOIN PRODUCT b ON a.pid=b.pid"+ 
      "WHERE [email protected]", Conn); 

    command.Parameters.Add("@Quantity", txtQty.Text); 
    command.Parameters.Add("@prid", cmbPid.Text); 

    command.ExecuteNonQuery(); 

    MessageBox.Show("Data is upated successfully."); 
} 
catch (Exception exp) 
{ 
    MessageBox.Show(exp.Message); 
} 

Примечание: Существует связь между таблицей PRODUCT и SALES с использованием pid

+0

Я подозреваю, от ошибки, что маркеры чувствительны к регистру, вы пробовали 'от' вместо' от'? – Claies

+0

есть таблица SALES? – JsonStatham

+0

Да, у меня есть таблица SALES определенно. –

ответ

2

Я думаю, что проблема в том, что нравится;

on a.pid = @prid 

Здесь приведен синтаксис Joins;

FROM first_table join_type second_table [ON (join_condition)] 

И from:

join_condition defines the predicate to be evaluated for each pair of joined rows

Я сильно подозреваю, вы должны фильтровать a.pid колонку на WHERE пункта, а не ON.

+0

даже я изменил «ON» на «WHERE» сталь не работала. –

+0

Трудно решить проблему? –

+0

Я проголосовал за ваш ответ и жду, чтобы принять его. Стали нужно решить проблему. Пожалуйста, вы можете отредактировать мой код и предоставить исправление. –

0

Может быть вам нужно добавить пробела между операторами запросов, что вы Concated

SqlCeCommand command = new SqlCeCommand("Update a set a.tPrice=(@Quantity) * (b.unitprice) " + 
       " from SALES a "+ 
       " join product b "+ 
       " on [email protected]", Conn); 
+0

. Присоединение по-прежнему недействительно. –

+0

не работает как ваш ответ. Пожалуйста, вы можете помочь мне, предоставив соединение Valid. –

+0

Трудно решить проблему? –

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