У меня возникла проблемма. Вот уже второй день не могу понять в чем дело. Пробовал создавать объект DataSet и заполнять его инфой из разных таблиц. Но почему-то у меня получался абсолютно пустой объект. Попробовал просто DataReader использовать, выдаёт тоже-самое. Говорит "Ну нет там никаких данных". Может я где по невнимательности что пропустил, или чегото не знаю. Вот простейший пример: База данных Northwind
ПОМОГИТЕ КТОНТЬ ПЛИИЗ!
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<%@ Page Language= "vb" AutoEventWireup= "false" Codebehind= "Sample.aspx.vb" Inherits= "Sample.Inf" codepage= 1251 %>
<HTML>
<HEAD>
</HEAD>
<body MS_POSITIONING= "FlowLayout" >
<form id= "Form1" method= "post" runat= "server" >
<asp:Label id= "lblInfo" runat= "server" Width= "345px" ></asp:Label>
<asp:DropDownList id= "lstProduct" runat= "server" Width= "172px" AutoPostBack= "true" ></asp:DropDownList>
</form>
</body>
</HTML>
Файл Sample.aspx.vb:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class Inf
Inherits System.Web.UI.Page
Protected WithEvents lstProduct As System.Web.UI.WebControls.DropDownList
Protected WithEvents lblInfo As System.Web.UI.WebControls.Label
Protected WithEvents lstCategory As System.Web.UI.WebControls.ListBox
Protected WithEvents cmdUpdate As System.Web.UI.WebControls.Button
Dim connectionString As String = "Provider=SQLOLEDB.1 ;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=localhost;Use Procedure for Prepare= 1 ;Auto Translate=True;Packet Size= 4096 ;Workstation ID=SIPFORA;Use Encryption for Data=False;Tag with column collation when possible=False"
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
InitializeComponent()
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Me.IsPostBack = False Then
Dim selectCommand As String = "SELECT ProductName,ProductId FROM Products"
Dim con As New OleDbConnection(connectionString)
Dim cmd As New OleDbCommand(selectCommand, con)
con.Open()
lstProduct.DataSource = cmd.ExecuteReader
lstProduct.DataTextField = "ProductName"
lstProduct.DataValueField = "ProductId"
lstProduct.DataBind()
con.Close()
lstProduct.SelectedIndex = - 1
End If
End Sub
Private Sub lstProduct_SelectedItemChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstProduct.SelectedIndexChanged
Dim productCommand As String = "SELECT ProductName,QuantitYPerUnit, CategoryName " & _
"FROM Products INNER JOIN Categories ON " & _
"Categories.CategoryId=Products.CategoryId " & _
"WHERE ProductId='" & Me.lstProduct.SelectedItem.Value & " '"
Dim con As New OleDbConnection(connectionString)
Dim cmdProducts As New OleDbCommand(productCommand, con)
con.Open()
Dim reader As OleDbDataReader
reader = cmdProducts.ExecuteReader
Me.lblInfo.Text = "<b>Продукт:</b> "
Me.lblInfo.Text &= reader( "ProductName" ) & "<br>"
Me.lblInfo.Text &= "<b>Вес/Количество:</b>"
Me.lblInfo.Text &= reader( "QuantityPerUnit" ) & "<br>"
Me.lblInfo.Text &= "<b>Категория:</b> " & reader( "CategoryName" )
con.Close()
End Sub
End Class