2016-07-19 4 views
-2

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

public int Generate_num(string P_PRM_TYPE) 
{ 
    try 
    { 
     int v_last_no = 0; 
     string query = @"select PARM_VALUE from soc_parm_mast where PARM_TYPE = '" + P_PRM_TYPE + "';"; 
     command.CommandText = query; 
     OleDbDataReader reader = command.ExecuteReader(); 
     reader.Read(); 
     v_last_no = Int32.Parse(reader["PARM_VALUE"].ToString()) + 1; 
     reader.Close(); 
     command.CommandText = @"update soc_parm_mast set PARM_VALUE = PARM_VALUE+1 where PARM_TYPE = " + P_PRM_TYPE + ";"; 
     command.ExecuteNonQuery(); 
     return v_last_no; 
    } 
    catch(Exception exception) 
    { 
     return 404; 
    } 
} 

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

int vTrans_no = GEN_NO.Generate_num("TRAN"); 
+0

Поскольку он всегда возвращает 404, означает, что ваш код попадает в блок catch. Можете ли вы дать подробности об исключении? – Sagar

+0

Вы даже пытались его отладить? Если да, тогда вы должны были знать, почему это происходит в исключении. Если не сделать это первым. – Sak

+0

- это соединение, управляемое библиотекой классов, жестко закодированное в? или он ищет значение строки соединения из некоторой конфигурации? например, эта библиотека была создана для работы с другими приложениями, и ее соединение извлекается из конфигурации этих приложений .. в этом случае вы должны добавить строку подключения в свой app.config –

ответ

0

Есть недостающие котировки на второй запрос, P_PRM_TYPE это строка, так что вам нужно поставить ' ' так:

command.CommandText = @"update soc_parm_mast set PARM_VALUE = PARM_VALUE+1 where PARM_TYPE = '" + P_PRM_TYPE + "';" 
Смежные вопросы