2012-02-16 3 views
-2
da = New SqlDataAdapter("select * from revision_cycle_documenttype_mapping where project_id=" & Session("project_id"), con) 
cb = New SqlCommandBuilder(da) 
ds = New DataSet 
da.Fill(ds, "revision_cycle_documenttype_mapping") <<-- 
mapping_count = ds.Tables("revision_cycle_documenttype_mapping").Rows.Count 
Response.Write(mapping_count) 

Я получаю сообщение об ошибке «Неправильный синтаксис рядом с = =». Я показал, на какой части он бросает ошибку i.e da.fill.ASP.net dataset

Не могли бы вы помочь мне?

+2

Я бы предположил, что сессия ("project_id") является пустой или пустой. Вы должны использовать параметры команды вместо встроенного SQL, чтобы предотвратить возможные атаки SQL-инъекций. –

ответ

0

EDIT

Если он выдает ошибку на da.Fill затем попытаться увидеть полученный код SQL первым. Ваш project_id может быть пустым.

Редактировать

Это является возможным решением

Dim projectId As Integer 
If Session("project_id") IsNot Nothing AndAlso IsNumeric(Session("project_id")) Then 
    projectId = Session("project_id") 
    da = New SqlDataAdapter("select * from revision_cycle_documenttype_mapping where project_id=" & projectId, con) 
    cb = New SqlCommandBuilder(da) 
    ds = New DataSet 
    da.Fill(ds, "revision_cycle_documenttype_mapping") <<-- 
    mapping_count = ds.Tables("revision_cycle_documenttype_mapping").Rows.Count 
    Response.Write(mapping_count) 
End If 
0

Я думаю, что сеанс Session("project_id") пуст, и это не самый лучший способ, чтобы добавить параметр в Уре SQL Statement. ваш код здесь уязвим для SQL-инъекций. вы должны сначала проверить, если ваш сеанс пуст, а затем вы должны добавить параметры, объявляя SqlCommand и присвоить ему параметры:

dim project_id as integer = 0 
If Session("project_id") IsNot Nothing AndAlso IsNumeric(Session("project_id")) Then 
project_id = Session("project_id") 
end if 
dim cmd as new sqlcommand 
cmd.parameters.add("@project_id",project_id) 

остальная часть кода будет оставаться тем же

0

Используйте параметры и проверки null.

Dim projectid=0 
If Not IsNothing(Session("project_id")) Then 
    projectid=DirectCast(Session("project_id"),Integer) 
End If 

Dim sql="select * from revision_cycle_documenttype_mapping where [email protected]_id" 
dim cmd as new SqlCommand(sql,con) 
cmd.Parameters.AddWithValue("@project_id",projectid) 

da = New SqlDataAdapter=(cmd) 

cb = New SqlCommandBuilder(da) 
ds = New DataSet 
da.Fill(ds, "revision_cycle_documenttype_mapping") 
Смежные вопросы