繁体   English   中英

尝试将数据库连接到 ASP.NET 网站

[英]Trying to connect either a database to an ASP.NET website

我目前正在 ASP.NET C# 中构建一个网站,并试图将用户数据库连接到它。 我将数据库作为另一台服务器(树莓派)上的 phpmyadmin 设置或作为 Windows Access 文件。 老实说,我更喜欢直接连接到 phpmyadmin,但连接访问文件就可以了。 我很困惑从哪里开始解决方案。 请有人可以提供一些帮助。

这是我第一次使用这个网站,所以如果我似乎在谈论人们通常不需要知道的事情,我很抱歉。 一般来说,我也是 C# 的新手,所以很抱歉,如果我问的是人们知道不起作用的东西。

你有一个数据库。 你想连接到它。

我在另一台服务器上将数据库作为 phpmyadmin 设置

停止!!! 你在说什么? 如果您在某台机器上安装并运行了 MySQL,请说明。 phpmyadmin 不是数据库,并且与此问题零零。

或作为 Windows Access 文件。

一个“文件”是一个巨大的、巨大的、巨大的、壮观的不同问题、概念、想法和问题。 一个文件是一个你“打开”的想法,如果你运行 Windows 软件,那么要在其他“东西”上打开一个文件,那么你需要在那个“东西”上运行 Windows 文件系统。 但是,这往往意味着您必须运行 Samba 或其他允许使用文件系统的系统。 但是,如果您运行像 MySQL 这样的数据库实例呢? 然后你不会在那个“东西”上使用文件或“打开”某个文件,但能够连接到数据库(数据库系统将在幕后读取所有数据)。

所以,如果你在那个“东西”上运行 MySQL 的一个实例,那么毫无疑问这是最好的选择(而不是一些基于文件的数据库 - 不要尝试 - 它不会很好地工作,并且在大多数情况下不能工作)。

那么,如果您在那个“东西”上运行 MySQL? 然后在你的 windows 机器上,启动 MySQL 工作台或任何你喜欢的数据库管理工具,看看你是否可以连接? 您必须使用 IP 地址,因为该设备非常不喜欢在 Windows 网络上显示为计算机。 (您需要在该设备上使用兼容的 Windows 网络堆栈才能使其正常工作)。 但是使用 MySQL 工作台或其他提到的数据库管理器工具/软件按 IP 地址访问设备应该可以正常工作。

一旦您的数据库管理软件工作并连接到该设备? 当那时并且只有那时,您才能尝试从 Visual Studio 和您计划创建 + 编写的应用程序/软件连接到那个“东西”。 在这种情况下,运行该软件的机器将需要安装一组 ODBC MySQL 驱动程序。 如果您想使用 MySQL 提供程序而不是在 Visual Studio 中使用 ODBC 提供程序,您当然也可以考虑为 .net 安装 MySQL 提供程序。

您通常有 3 种选择: oleDB 提供程序。 - 这很快就变味了。 但它通常用于连接到 .net 中的 MS-Access 数据库。 但是,这需要 Access 文件的有效直接 Windows 路径。 所以,除非这是独立的桌面软件,否则我不会使用 Access,事实上我也不会使用 .net oleDB 提供程序。

下一个选择:.net 中的 ODBC 提供程序。 这也不是很受欢迎,但它是一个非常好的选择。 原因是通过使用/选择 ODBC 提供程序,您可以将连接从 SQL 服务器更改为 MySQL 甚至 MSAccess 数据库,然后需要对现有代码进行极少的更改。 因此,不要忽略在 .net 中使用 ODBC 提供程序的绝佳选择

下一个选择:sqlproivder。 这是最常见的,但前提是您将 SQL Server 与 .net 应用程序一起使用。 您有时会看到它被称为“ado.net”,但“sqlProvider”是一个更好的名称。 (数据行、数据表、数据集等基础对象是假定的“ado.net”,无论您选择哪种 .net 提供程序技术,这些对象都是相同的。

下一个选择:代替 ODBC,还是 sqlProvider? 我相信 MySQL 确实有一个 .net MySQLProvider。

现在在所有上述 3-4 个选择中? 只有最顶层的连接对象如:sqlCommand(或oledbSqlCommand,或ODBCSqlCommand),以及连接对象发生变化。 对于您选择 + 使用的所有提供程序,后面的所有代码实际上都是相同的。 但是,如果您选择 ODBC 驱动程序,那么您可以更改连接字符串,甚至不必更改您最重要的数据连接技术(您的提供程序)。

总结:如果您可以选择运行 MySQL 或其他一些允许基于套接字的连接代替文件系统的数据库服务器? 毫无疑问,选择那条路。

SQLite,或者说 MS-Access 都是基于文件的。 当涉及到“设备”和小型计算机时,您会关闭 99% 的连接选项。 基于文件的系统不允许您通过 IP 地址进行连接,而 MySQL 或任何基于服务器的数据库确实允许这些连接选项。 结果是更容易连接到该数据库系统的运行服务/实例,而不是基于文件的数据库系统。

如果您只是在 Raspberry 上单独运行软件? 那么当然可以使用 SQLite,因为它是基于文件的。 但是,如果您需要外部使用该数据,并且您不使用/支持该设备上的 Web 服务调用? 然后使用基于非文件的数据库 - 允许通过 IP 地址进行外部套接字连接的数据库(基于文件的系统不允许)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM