lee loong Ответов: 2

Как получить данные из базы данных SQL azure с помощью javascript


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 
Inherits="APIToDatabase.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
 <<head>
  <title></title>
  <script type="text/javascript">
  function connectDb()
  {
  var ConnDB = new ActiveXObject("ADODB.Connection");
  ConnDB.ConnectionString="Driver={ODBC Driver 13 for SQL Server};Server=tcp:yueloongserver.database.windows.net,1433;Database=LocationDatabase;Uid=;Pwd=;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;";
 ConnDB.Open();
 var Rs = new ActiveXObject("ADODB.Recordset");
  var tempstr = "";
 Rs.Open("select Latitude,Longitude from dbo.GPS",ConnDB);
 while(!Rs.EOF === true)
 {
  tempstr = tempstr + Rs("Latitude")  + "" + Rs("Longitude");


 Rs.MoveNext;
}
  test.innerHTML = tempstr;
}
  </script>
  </head>
  <body>


  <p><div id=test> </div>
  <p><input id="button1" type="button"   value="Run"   name="button1" onclick="connectDb();"></p>


  </body>
     </script>  


Hi, i am having the problem where i am able to only retrieve one column from the database. However, i would like to retrieve all the columns from the database table.


Что я уже пробовал:

Я перепробовал много способов, таких как изменение переменных и чтение кода, чтобы понять и понять проблему

F-ES Sitecore

Знаете ли вы не только о монументальных проблемах безопасности, связанных с тем, что вы делаете, но и о том, что вы также автоматизируете COM-объекты, которые не предназначены для автоматизации, поэтому ваш код будет работать только в браузерах, где пользователь удалил все параметры безопасности или изменил свой реестр, чтобы удалить безопасность, окружающую объекты, которые вы используете?

2 Ответов

Рейтинг:
2

MadMyche

ActiveX также представляет собой огромный риск для безопасности и обычно отключается по умолчанию в IE и не поддерживается другими основными браузерами. В настоящее время вы предоставляете миру информацию о своем соединении, поэтому ваш пароль БД известен всем.

Код, который вы на самом деле вставили, - это "vbscript", и тег сценария должен быть изменен, чтобы отразить это; однако я не рекомендую идти этим путем из-за проблем ActiveX.
Код, который вы фактически вставили, очень похож на то, как был бы написан классический ASP; однако это было бы "интерпретировано" на сервере.

Что у вас есть, так это то, что это может быть преобразовано в ASP.NET и быть помещенным на страницу с кодовым кодом, с незначительными изменениями в синтаксисе. Если бы вы выбрали этот маршрут, он переместил бы выполнение скрипта на сервер и был бы выполнен, когда эта страница будет запрошена.

Вероятно, лучше всего было бы обратиться к документации для веб-форм и к тому, как получить доступ к базе данных.
Хорошая отправная точка: Доступ к базе данных непосредственно из ASP.NET страница | Microsoft Docs[^]


Richard Deeming

Это Javascript, а не VBScript. :)

MadMyche

тьфу... обновлено

Рейтинг:
1

CHill60

Чтобы извлечь все столбцы из таблицы все что вам нужно сделать это заменить их

"select Latitude,Longitude from dbo.GPS"
с
"select * from dbo.GPS"
Но на самом деле это не очень хорошая практика. Лучше перечислять столбцы по именам, разделенным запятыми ... кстати, вы на самом деле извлекаете два столбцы из таблицы не один, как вы утверждаете.

Вы также можете ссылаться на поля в Rs по номеру, а не только по имени - см. Коллекция Полей | Microsoft Docs[^]