sachinmaalik Ответов: 2

Как считать запись в считывателе


Я создал программу, которая будет отправлять уведомления по электронной почте пользователю. Теперь я хочу подсчитать запись внутри моего reader.item("vendor_name") и показать, сколько записей было возвращено.

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

Dim sqlcmd As New OleDb.OleDbCommand("SELECT aca.vendor_id, aca.vendor_name, pvs.phone,aca.CHECK_STOCK_ID, " & _
"pvs.email_address, aia.invoice_num, aip.amount, aip.accounting_date, " & _
"aip.invoice_id, aip.check_id, aia.Description FROM ap_checks_all aca, ap_invoice_payments_all aip, " & _
"ap_invoices_all aia, ap.ap_supplier_sites_all pvs, ap.AP_CHECK_STOCKS_ALL acs " & _
"Where aca.check_id = aip.check_id And pvs.vendor_site_id = aca.vendor_site_id " & _
"AND aip.invoice_id = aia.invoice_id AND aca.org_id = 86 AND aca.bank_account_name = 'BPI 0011117635' " & _
"AND aca.REMIT_TO_SUPPLIER_SITE = 'OFFICE' and acs.CHECK_STOCK_ID= aca.PAYMENT_DOCUMENT_ID(+) " & _
"AND UPPER (acs.name) = 'DEBIT ADVICE' AND aca.check_date = '" & Format(dtDate.Value, "yyyy-MMM-dd") & "' order by aca.vendor_id", cn)

Dim myreader As OleDb.OleDbDataReader
myreader = sqlcmd.ExecuteReader()

myreader.Read()
Dim rowCount As Integer = 0

If myreader.HasRows Then

rowCount += 1

irec = rowCount.ToString

txtmsg.Text = "Processing: " & myreader.Item("vendor_name").ToString & "'s Payroll..."
myreader.NextResult()

dtl = "Run Date: " & Now() & vbCrLf & _
                  "Mail Notification successful." & vbCrLf & _
                   irec & " records processed." & vbCrLf


MsgBox(dtl)

[no name]

Я изменил тег С C# на VB.

2 Ответов

Рейтинг:
2

Jinto Jacob

Вы можете использовать while петля для траверса до тех пор, пока myreader.Read() возвращает значение и инкриминирует переменную count внутри цикла.

While reader.Read()
     rowCount += 1
End While

это даст вам количество записей


Рейтинг:
0

OriginalGriff

Как я уже сказал тебе или твоему однокласснику:

Цитата:
Есть ли какая-то причина, по которой вы просто не используете
SELECT COUNT(*) FROM ...
как ваша команда SQL? Затем SQL подсчитает их для вас и вернет количество совпадающих строк, не тратя время на перенос записей...

Как считать запись в считывателе[^]