【问题标题】:Using Javascript to connect SQL Server database使用 Javascript 连接 SQL Server 数据库
【发布时间】:2011-04-11 13:46:35
【问题描述】:

我需要使用 Javascript 从 SQl Server 2008 数据库中读取一些数据。 所以我写了这个:(html页面代码)

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Database Connect</title>
<script type="text/javascript">
function loadDB(){
var connection = new ActiveXObject("ADODB.Connection");

var connectionstring="Data Source=ИЛЬЯ-ПК;Initial Catalog=C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\SIGMA_Database.mdf;User ID=Илья;Password="";Provider=SQLOLEDB";

connection.open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");

rs.Open("SELECT Username FROM Users", connection);
rs.MoveFirst();
while(!rs.eof)
{
   document.write(rs.fields(1));
   rs.MoveNext();
}

rs.close();
connection.close();

}
</script>
</head>
<body onload="loadDB()">
<div id="main"></div>
</body>
</html>

但是,什么都没有发生! 有什么问题吗?连接字符串中有一些西里尔字母符号,会不会是问题的根源?还是其他问题?

【问题讨论】:

  • 你在什么浏览器上运行这个?你能查看 javascript 错误吗?
  • 你在什么环境下运行它?网络服务器?本地文件?嗯?
  • 我真诚地希望您的安全不会允许好奇的旁观者访问此文件,并且这是一个“仅限内部”文件。
  • 我使用谷歌浏览器;一切都是本地的;安全性现在不重要了,我知道 javascript 不是连接数据库的最佳方式;

标签: javascript sql-server database connection


【解决方案1】:

这是仅限 IE 的代码,即使在 IE 中您也必须明确允许这样的事情,请在此处查看接受的答案:
ActiveXObject in IE8

【讨论】:

  • 但是我使用 Chrome 和 Firefox,如果我有这些浏览器,如何使用 javascript 连接到数据库?
  • @Ilya 你可以用window.openDatabase 谷歌一下,第一个结果是:creativepark.net/blog/entry/id/1191
  • 是的,真的很好!唯一不明白的是数据库必须放在哪里?我应该在window.openDatabase()的第一个参数中写一个完整的路径?跨度>
  • @Ilya 你没有给出路径,数据库在浏览器内部。如果您需要使用现有数据库,则必须使用服务器端语言,如 PHPASP,使用 IIS 或 Apache 等 Web 服务器软件。
  • 如果代码仅在本地运行,另一种选择是写入.vbs 文件并让用户直接执行它。在那里,您可以使用普通的vbscript 代码。
【解决方案2】:

您的connectionstring 没有正确转义,应该是:

var connectionstring="Data Source=ИЛЬЯ-ПК;Initial Catalog=C:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\SIGMA_Database.mdf;User ID=Илья;Password=\"\";Provider=SQLOLEDB";

【讨论】:

    【解决方案3】:

    你试过了吗

    s.Open("SELECT Username FROM Users", connection);
    rs.MoveFirst();
    while(!rs.EOF)
    {
       document.write(rs.Fields.Item(1));
       rs.MoveNext();
    }
    
    rs.Close();
    connection.Close();
    

    编辑 rs.Fields

    【讨论】:

    【解决方案4】:

    您的代码的问题是您正在使用物理驱动器路径 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\SIGMA_Database.mdf; 访问 SQL Server 数据库;

    使用以下代码连接到 SQL Server

    var strconnectionstring = "Data Source=your_server_name;Initial Catalog=your_database_name;User ID=database_user_id;Password=database_password;Provider=SQLOLEDB";

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 2019-09-16
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多