Mohammed.iq Ответов: 2

Asp.net отображения данных от доступа к данным в текстовом поле


привет..
у меня есть проблема с отображением данных из access data в текстовое поле, но не отображайте их, думаю, у меня есть vs2013 и код ниже:
aspx:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication14.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Database1ConnectionString %>" ProviderName="<%$ ConnectionStrings:Database1ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Table1]"></asp:SqlDataSource>
    </form>
</body>
</html>



vb.net:
Imports System.Data
Imports System.Data.SqlClient
Public Class WebForm1
    Inherits System.Web.UI.Page

    Private Sub getData(ByVal user As String)
        Dim dt As New DataTable()
        Dim connection As New SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Mohammed\Documents\Database1.mdb")
        connection.Open()
        Dim sqlCmd As New SqlCommand("SELECT * from TABLE1 WHERE UserID = @username", connection)
        Dim sqlDa As New SqlDataAdapter(sqlCmd)
        sqlCmd.Parameters.AddWithValue("@username", user)
        sqlDa.Fill(dt)
        If dt.Rows.Count > 0 Then
            TextBox1.Text = dt.Rows(0)("ID").ToString
            TextBox2.Text = dt.Rows(0)("PhoneNumber").ToString
            Label1.Text = dt.Rows(0)("ID").ToString
            Label2.Text = dt.Rows(0)("PhoneNumber").ToString
        End If
        connection.Close()
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        If Not Page.IsPostBack Then
            getData(Me.User.Identity.Name)
        End If
    End Sub
End Class


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

я меняю базу данных и меняю код, но получаю ошибку, и я получаю этот код, но не работаю .

Заранее Спасибо

ZurdoDev

А ошибка есть?

Mohammed.iq

ошибки нет, но данные не отображаются.. спасибо за ваш повтор

2 Ответов

Рейтинг:
1

Bryian Tan

Похоже, вы получите "Ключевое слово не поддерживается: "поставщик". "ошибка, так как приложение использует класс SqlConnection для доступа к базе данных Microsoft Access. Он должен использовать класс OleDbConnection.

Вот как должен выглядеть код.

Private Sub getData(ByVal user As String)

    Dim dt As New DataTable()
    ' Dim connection As New SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Mohammed\Documents\Database1.mdb")
    Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Mohammed\Documents\Database1.mdb")
    connection.Open()
    ' Dim sqlCmd As New SqlCommand("SELECT * from TABLE1 WHERE UserID = @username", connection)
    Dim sqlCmd As New OleDbCommand("SELECT * from TABLE1 WHERE UserID = @username", connection)
    'Dim sqlDa As New SqlDataAdapter(sqlCmd)
    Dim sqlDa As New OleDbDataAdapter(sqlCmd)
    sqlCmd.Parameters.AddWithValue("@username", user)
    sqlDa.Fill(dt)
    If dt.Rows.Count > 0 Then
        TextBox1.Text = dt.Rows(0)("ID").ToString
        TextBox2.Text = dt.Rows(0)("PhoneNumber").ToString
        Label1.Text = dt.Rows(0)("ID").ToString
        Label2.Text = dt.Rows(0)("PhoneNumber").ToString
    End If
    connection.Close()
End Sub


Кстати, является ли sqldatasource на .aspx избыточным?


Mohammed.iq

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

Mohammed.iq

я добавляю ссылку, но получаю эту ошибку в sqlDa. Fill (dt) ..
Отладчик: остановлен при исключении: ExecuteCommandTextErrorHandling
Отладчик перехватил исключение, и пользовательские настройки указывают на то, что должен произойти разрыв.
Время: 7/9/2017 3: 48: 37 вечера
Поток: Рабочий Поток[17196]

Bryian Tan

Хмм. Интересный. Вы используете базу данных Access? Убедитесь, что код имеет это пространство имен сверху

Imports System.Data.OleDb
. Вы проверили, является ли пользователь или Я.пользователь.Идентичность.Имя имеет в нем значение?

Mohammed.iq

спасибо друг за ваш повтор.. да нет никакой связи..
его остановка при тусклом соединении как новое OleDbConnection ("DatabaseConnectionString")
соединение.Открыть()

и я добавляю инструмент sqldatasource и получаю строку имени в коде, но проблема с суммой..
еще раз спасибо за ваше время

Рейтинг:
1

Atlapure Ambrish

Используйте опцию " настроить источник данных..", чтобы построить строку подключения к базе данных access. вы увидите этот параметр после добавления SqlDataSource на страницу aspx в режиме конструктора и выбора его. Используйте в диалоговом окне Параметры" новое соединение... "и" файл базы данных Microsoft Access " соответственно.


Mohammed.iq

спасибо друг за ваш повтор.- я делаю это, но проблема та же..