Вы должны установить параметризованные значения (те, у которых есть знак вопроса). Вот подобный пример в VB.NET:
' Make a Command for this connection
' and this transaction.
Dim cmd As New OleDb.OleDbCommand(_
"SELECT * FROM People WHERE FirstName=? AND " & _
"LastName=?", _
connUsers)
' Create parameters for the query.
cmd.Parameters.Add(New _
OleDb.OleDbParameter("FirstName", first_name))
cmd.Parameters.Add(New OleDb.OleDbParameter("LastName", _
last_name))
Если вы не хотите использовать параметризованные запросы, просто заменить знак вопроса со значением по умолчанию, или переменной со значением:
string updateIncomeData = @"INSERT INTO TEAM_FUNDS_DETAILS("
+ "COMPONENT_TYPE,COMPONENT_NAME,COMPONENT_AMOUNT, YEAR_FOR, MONTH_FOR)"
+ "VALUES(" + Convert.ToInt32(TeamFundDetailsEnumClass.ComponentType.Income)
+ " , '', 0,"
+ ddlYear.SelectedIndex + ", " + ddlMonth.SelectedIndex + ")"
или
string updateIncomeData = @"INSERT INTO TEAM_FUNDS_DETAILS("
+ "COMPONENT_TYPE,COMPONENT_NAME,COMPONENT_AMOUNT, YEAR_FOR, MONTH_FOR)"
+ "VALUES(" + Convert.ToInt32(TeamFundDetailsEnumClass.ComponentType.Income)
+ " , '" + myComponentName + "', " + myComponentAmount,"
+ ddlYear.SelectedIndex + ", " + ddlMonth.SelectedIndex + ")"
Что такое вычисленное значение 'updateIncomeData' до того, как это будет выполнено? – Brad
Вам не хватает закрывающейся запятой в конце вашего заявления? Или это просто ошибка с вырезанием/вставкой, вставляющая код в SO? –
@Paul Hadfield: нет сэр. Я добавил полуточку в конце заявления. – Shalni