G.Mahendra Ответов: 2

Как вставить данные из базы данных SQL server и получить к ним доступ с помощью HTML5, CSS3 и JAVASCRIPT?


Привет,

Я пытаюсь вставить данные в SQL Server с помощью HTML5, CSS3 и JAVASCRIPT. После нажатия кнопки все значения должны храниться в базе данных и снова обращаться к данным с SQL Server и отображаться в таблице HTML5. Но я не могу понять, как это сделать. Я использую Visual Studio 2010 для создания HTML-страниц и базы данных SQL Server.

Может ли кто-нибудь помочь мне найти правильное решение для этого?

Я не могу найти рабочее решение для этого в поиске Google. На самом деле я нашел одно решение для вставки и доступа к данным из SQL server. Но это не работает.

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

Я попытался прореветь код:

Ссылка На Источник:

Вставка записи в базу данных с помощью текстовых полей в JavaScript[^]

Код: Я следовал всем шагам, как и в приведенной выше ссылке.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" >
        function InsertRecord()
        {
            var txtid = document.getElementById('txtid').value;
            var txtname = document.getElementById('txtname').value;
            var txtsalary = document.getElementById('txtsalary').value;
            var txtcity = document.getElementById('txtcity').value;
            if (txtid.length != 0 || txtname.length !=0 || txtsalary.length !=0|| txtcity.length !=0)
            {
                var connection = new ActiveXObject("ADODB.Connection");
                var connectionstring = "Data Source=.;Initial Catalog=EmpDetail;Persist Security Info=True;User ID=sa;Password=****;Provider=SQLOLEDB";
                connection.Open(connectionstring);
                var rs = new ActiveXObject("ADODB.Recordset");
                rs.Open("insert into Emp_Info values('" + txtid + "','" + txtname + "','" + txtsalary + "','" + txtcity + "')", connection);
                alert("Insert Record Successfuly");
                txtid.value = " ";
                connection.close();
            }
            else
            {            
                alert("Please Enter Employee \n Id \n Name \n Salary \n City ");
            }
        }
        function ShowAll()
        {
                var connection = new ActiveXObject("ADODB.Connection");
                var connectionstring = "Data Source=.;Initial Catalog=EmpDetail;Persist Security Info=True;User ID=sa;Password=****;Provider=SQLOLEDB";
                connection.Open(connectionstring);
                var rs = new ActiveXObject("ADODB.Recordset");
                rs.Open("select * from Emp_Info ", connection);
                rs.MoveFirst();
                var span = document.createElement("span");
                span.style.color = "Blue";
                span.innerText = "  ID " + "  Name " + "  Salary" + " City ";
                document.body.appendChild(span);
                while (!rs.eof)
                {
                    var span = document.createElement("span");
                    span.style.color = "green";
                    span.innerText = "\n " + rs.fields(0) + " |  " + rs.fields(1) + " |  " + rs.fields(2) + " |  " + rs.fields(3);
                    document.body.appendChild(span);
                    rs.MoveNext();
                }
                rs.close();
                connection.close();
            } 
    </script>
    <style type="text/css">
        #main
        {
            height: 264px;
        }
        #ShowRecord
        {
            width: 67px;
            z-index: 1;
            left: 20px;
            top: 257px;
            position: absolute;
        }
        #showall
        {
            z-index: 1;
            left: 114px;
            top: 257px;
            position: absolute;
        }
    </style>
</head>
<body style="height: 431px">
    <div id="show">
        style="font-size: x-large; font-weight: bold; height: 298px; color: #009999;">
       Insert Employee Record<p style="font-size: medium; color: #000000;">
     Employee Id  
    <input id="txtid" type="text" /></p>
        <p style="font-size: medium; color: #000000;">
            Name             
            <input id="txtname" type="text" /></p>
        <p style="font-size: medium; color: #000000;">
            Salary            
            <input id="txtsalary" type="text" /></p>
        <p style="font-size: medium; color: #000000;">
            City                
            <input id="txtcity" type="text" /></p>
    <input id="ShowRecord" type="button" value="Insert" /> 
    <input id="showall" type="button" value="Show All Record" /></div>
    </body>
</html>


Когда я пытаюсь вставить или получить доступ к данным с помощью приведенного выше кода, он отображает следующую ошибку.

описание ошибки:

"Ошибка выполнения JavaScript: многоступенчатая операция OLE DB генерирует ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Никакой работы не было сделано”.

Я попытался найти решение для вышеуказанной ошибки в этом процессе, я получил ниже информацию о методе activeXobject.

Ссылка для ссылки на ошибку:

https://support.microsoft.com/en-in/kb/269495[^]

2 Ответов

Рейтинг:
2

Maciej Los

Как Документация MSDN[^] государственный:


  1. Не используйте ключевое слово "Persist Security Info" в строке подключения ADO!!!
    var connectionstring = "Data Source=.;Initial Catalog=EmpDetail;Persist Security Info=True;User ID=sa;Password=****;Provider=SQLOLEDB";

  2. Добавьте запись реестра OLEDB_SERVICES...


Для получения более подробной информации, пожалуйста, смотрите: Устранение неполадок 80040e21 ошибок - adOpenStatic.com[^]


Рейтинг:
0

Patrice T

Не решение, а Совет:
- Это плохая идея использовать ActiveX, потому что только IE поддерживает их, и они деактивированы в большинстве из них из-за рисков безопасности.
- Это плохая идея использовать JS только для доступа к SQL, потому что это все клиентская сторона, и вы должны предоставить клиенту учетные данные SQL (он же идентификатор пользователя и пароль).
- Никогда не создавайте SQL-запрос таким образом

rs.Open("insert into Emp_Info values('" + txtid + "','" + txtname + "','" + txtsalary + "','" + txtcity + "')", connection);

Это открывает дверь для SQL-инъекции, это еще одна плохая вещь, потому что простого вредоносного ввода от пользователя достаточно, чтобы захватить вашу базу данных.
Весь доступ к SQL должен быть на стороне сервера по очевидным причинам безопасности.
SQL-инъекция[^]