SQL данные не показывают две колонки на сайте - PullRequest
0 голосов
/ 26 марта 2020

У меня есть соединение БД с моим SQL сервером на Azure. Два столбца отображаются на странице, но не отображают остальные 2. В столбцах указано название компании и дополнительные сведения

Название компании является стандартным фирменным наименованием

В дополнительных сведениях хранятся URL-адреса для получения дополнительной информации

Я пробовал оператор SQL в SQL Management, и он отображает данные, которые должны быть показаны.

Я проверил параметры столбца, они оба nvarchar (Max) отображается как -1 при нажатии, чтобы изменить размер столбца. Означает ли это, что он имеет неограниченный размер?

Тип файла Classi c ASP со встроенными CSS и HTML внутри.

Ниже приводится то, что вызывается в базе данных.

<%
Session.LCID=2057

Dim connpiudb, rspiudata, strSQL, fldThis, strSQL2, strSQL3, strcategory

strcategory = Request.querystring("category")

Set connpiudb = Server.CreateObject("ADODB.Connection")
Set rspiudata = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT companyname, courtnumber, cronumber, furtherdetails FROM piudata WHERE category LIKE '" & strCategory & "%' Order by companyname"
 strValue = Request.QueryString(<%= rspiudata.Fields("companyname") %>)

response.write strSQL
response.write strValue

<!-- strSQL = "SELECT companyname , courtnumber , cronumber, furtherdetails FROM piudata WHERE category LIKE '%c%' Order by companyname" -->

connpiudb.Open strConnect
rspiudata.open strSQL, connpiudb
%>

Ниже показано, как база данных хранится в таблице HTML.

<!--content start-->

<FONT FACE="Arial" size="2">

<TABLE BORDER="0" cellpadding="2" width="60%"><TR>

  <%
  Do Until rspiudata.EOF
  %>
  <TR><TD width="40%"><B>Company Name:</B></TD><TD width="60%"><%= rspiudata.Fields("companyname") %></TD></TR>  
  <TR><TD width="40%"><B>Further Details:</B></TD><TD width="60%"><%=rspiudata.Fields("furtherdetails") %></TD></TR>
  <TR><TD width="40%"><B>Court Number:</B></TD><TD width="60%"><%= rspiudata.Fields("courtnumber") %></TD></TR>
  <TR><TD width="40%"><B>Company Registered Number:</B></TD><TD width="60%"><%= rspiudata.Fields("cronumber") %></TD></TR>
  <TR><TD width="100%" colspan="2"><HR></TD></TR>
  <%
  rspiudata.movenext
  Loop

  rspiudata.Close
  Set rspiudata = Nothing
  connpiudb.close
  %>
</TABLE>

Я изо всех сил пытаюсь понять, что является настоящей проблемой. Единственное, о чем я подумал, это то, что размеры столбцов по умолчанию равны -1 при установке его как MAX или что Classi c ASP не поддерживает NVARCHAR (max)

Любая помощь будет отличной.

1 Ответ

0 голосов
/ 27 марта 2020

Прежде чем идти дальше, необходимо исправить следующий код

<%
...
strValue = Request.QueryString(<%= rspiudata.Fields("companyname") %>)

Я понял, что он у вас есть для отладки, однако он не имеет ни действительного синтаксиса (вы вводите <% %> в существующий блок кода сервера, ни допустимый оператор (Request.QueryString для строк запроса) или правильное место (набор записей определен, но не открыт).

И прочитайте о sql инъекциях.

...