AccessDataSource.DataFile Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает расположение файла .mdb Microsoft Access.
public:
property System::String ^ DataFile { System::String ^ get(); void set(System::String ^ value); };
public string DataFile { get; set; }
member this.DataFile : string with get, set
Public Property DataFile As String
Значение свойства
Расположение файла access .mdb. Поддерживаются абсолютные, относительные и виртуальные пути.
Исключения
Указан недопустимый путь.
Примеры
В этом разделе содержатся три примера кода. В первом примере кода показано, как задать DataFile свойство Northwind.mdb файлу, который находится в том же каталоге, что и страница веб-форм. Второй пример кода демонстрирует, как задать DataFile свойство виртуальному пути к файлу Northwind.mdb, который находится в каталоге с именем Database, который находится под каталогом, в котором находится страница веб-форм. Третий пример кода демонстрирует, как задать DataFile свойству UNC-путь к файлу Northwind.mdb, который доступен в UNC-ресурсе.
В следующем примере кода показано, как задать DataFile свойство Northwind.mdb файлу, который находится в том же каталоге, что и страница веб-форм.
<%@Page Language="C#" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataSet"
DataFile="~/App_Data/Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
AllowSorting="True"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
<%@Page Language="VB" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataSet"
DataFile="~/App_Data/Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
AllowSorting="True"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
В следующем примере кода показано, как задать DataFile свойство на виртуальный путь к файлу Northwind.mdb, который находится в каталоге с именем Database, который находится под каталогом, в котором находится страница веб-форм.
<%@Page Language="C#" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataReader"
DataFile="database/Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
<%@Page Language="VB" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataReader"
DataFile="database/Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
В следующем примере кода показано, как задать DataFile свойству UNC-путь к файлу Northwind.mdb, который доступен в UNC-ресурсе.
<%@Page Language="C#" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataReader"
DataFile="\\uncpath\Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
<%@Page Language="VB" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:AccessDataSource
id="AccessDataSource1"
runat="server"
DataSourceMode="DataReader"
DataFile="\\uncpath\Northwind.mdb"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:AccessDataSource>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="AccessDataSource1">
</asp:GridView>
</form>
</body>
</html>
Комментарии
Свойство DataFile — это виртуальный, абсолютный или UNC-путь к файлу Access .mdb, который AccessDataSource представляет элемент управления. Если введено только имя файла, это означает, что файл .mdb найден в том же каталоге, что и страница веб-форм или код. Поддерживаются относительные пути с косыми чертами вперед и назад. Например, "./test/test/Northwind.mdb" сопоставляется с тем же путем, что ".\test\test\Northwind.mdb" и "test/test/Northwind.mdb". UNC-пути, такие как "\\mymachine\somedatadirectory\Northwind.mdb", также поддерживаются. Хотя поддерживаются абсолютные физические пути, их следует избегать, так как они могут усложнять развертывание.
Настройка разрешений для базы данных Access
Важным аспектом работы с файлом Access .mdb является правильная настройка разрешений. Если веб-приложение использует базу данных Access, приложение должно иметь разрешение на чтение файла .mdb, чтобы он смог получить доступ к данным. Кроме того, приложение должно иметь разрешение на запись в папку, содержащую файл .mdb. Разрешение на запись требуется, так как Access создает дополнительный файл с расширением LDB, в котором сохраняется информация о блокировках базы данных для одновременных пользователей. Файл LDB создается во время выполнения.
По умолчанию веб-приложения ASP.NET выполняются в контексте локальной учетной записи компьютера с именем ASPNET (для Microsoft Windows 2000 и Microsoft Windows XP) или в контексте учетной записи NETWORK SERVICE (для Microsoft Windows Server 2003). Например, для Windows 2000 или Windows XP, если веб-сервер называется MyServer, ASP.NET приложения на компьютере MyServer выполняются в контексте локальной учетной записи MyServer\ASPNET.
Таким образом, чтобы использовать базу данных Access в веб-приложении ASP.NET, необходимо настроить папку, содержащую базу данных Access, чтобы иметь разрешения на чтение и запись.
При создании веб-сайта в средстве разработки веб-разработчиков Microsoft Visual Web Developer Visual Web Developer создает папку с именем App_Data под текущей корневой папкой. Папка предназначена для хранения данных приложения, включая базы данных Access. Папка App_Data также используется ASP.NET для хранения баз данных, обслуживаемых системой, таких как база данных для членства и ролей. Когда Visual Web Developer создает папку App_Data, она предоставляет разрешения на чтение и запись для папки учетной записи пользователя ASPNET или NETWORK SERVICE.
Замечание
В качестве меры безопасности Visual Web Developer также настраивает папку App_Data, чтобы файлы в папке не обслуживались веб-сервером. Не сохраняйте веб-страницы в папке App_Data, так как пользователи увидят ошибку, если они запрашивают страницу из этой папки.