السلام عليكــم ورحمـة الله وبركاتــه ،،
عندي سوال اريد اجابه طارئه
لي 3 ساعات اتصارع مع هذا الكود من غير فائده==>>with no use
وما دريت كيف اصحح الخطا حيث رساله الخطأ هي
(There is already an open datareader with the associated command
which must be closed(
والكود كا التالي
=====================
Imports System.Data.SqlClient
Public Class Form1
Dim mysqlstr As String = "Data Source=(local);Initial Catalog=cfd;Integrated Security=SSPI"
Dim mysqlconnection As New SqlConnection(mysqlstr)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
If (mysqlconnection.State And ConnectionState.Open) <> 0 Then
mysqlconnection.Close()
End If
mysqlconnection.Open()
Dim cmmd1 As New SqlCommand
cmmd1.Connection = mysqlconnection
Dim cmmd2 As New SqlCommand
cmmd2.Connection = mysqlconnection
Dim cmmd3 As New SqlCommand
cmmd3.Connection = mysqlconnection
Dim cmmd4 As New SqlCommand
cmmd4.Connection = mysqlconnection
Dim cmmd5 As New SqlCommand
cmmd5.Connection = mysqlconnection
Dim cmmd6 As New SqlCommand
cmmd6.Connection = mysqlconnection
Dim cmmd7 As New SqlCommand
cmmd7.Connection = mysqlconnection
Dim cmmd As New SqlCommand
cmmd.Connection = mysqlconnection
cmmd.CommandText = "select book_id from lodgers where cast(check_out_date as datetime) < '" & Today.Date & "'"
Dim drd As SqlDataReader = cmmd.ExecuteReader
While drd.Read
cmmd1.CommandText = " select booked_single_rooms from lodgers where book_id=" & CInt(drd.Item("book_id")) & ""
Dim b_s_r As Integer
b_s_r = cmmd1.ExecuteScalar()
Dim b_t_r As Integer
cmmd2.CommandText = " select booked_twin_rooms from lodgers where book_id=" & CInt(drd.Item("book_id")) & ""
b_t_r = cmmd2.ExecuteScalar()
Dim hot_n As String
cmmd3.CommandText = "select hotel_name from lodgers where book_id=" & CInt(drd.Item("book_id")) & ""
hot_n = cmmd3.ExecuteScalar()
Dim city_n As String
cmmd4.CommandText = "select city_name from lodgers where book_id=" & CInt(drd.Item("book_id")) & ""
city_n = cmmd4.ExecuteScalar()
cmmd5.CommandText = "update hotels set avail_single_rooms=avail_single_rooms+" & Trim(b_s_r) & ",avail_twin_rooms=avail_twin_rooms+" & Trim(b_t_r) & " where hotel_name='" & hot_n & "' and city_name='" & city_n & "'"
cmmd5.ExecuteNonQuery()
cmmd6.CommandText = "delete from lodgers where book_id=" & CInt(drd.Item("book_id")) & ""
cmmd6.ExecuteNonQuery()
cmmd7.CommandText = "update reservation set book_id=0 where book_id=" & CInt(drd.Item("book_id")) & ""
cmmd7.ExecuteNonQuery()
MsgBox("success")
End While
drd.Close()
mysqlconnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
=====================
حيث المطلوب هنا يحذف كل النزلاء بفندق قبل تاريخ االيوم
اتمنى الاجابه
ولكم جزيل الشكر


