 |
|
ถามเรื่อง vb.net ดึงข้อมูล stored procedure ของ sql server มาแสดง |
|
 |
|
|
 |
 |
|
sql = "exec count_drugs"
|
 |
 |
 |
 |
Date :
2013-02-24 00:06:31 |
By :
N3BUL4 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ผมลองทำดูครับ จะได้ค่าที่เรานับ แก้ไขที่ stored procedure ด้วยครับ
Code (SQL)
ALTER PROCEDURE [dbo].[Count_Member]
AS
BEGIN
SET NOCOUNT ON;
SELECT COUNT(MEMID) as CountMember FROM M3MB3R
END
ที่ฟอร์ม
Code (VB.NET)
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Dim objConnck As SqlConnection
Dim objCmdck As SqlCommand
Dim sysconfigck As String = WebConfigurationManager.ConnectionStrings("test1ConnectionString").ConnectionString
Dim dtAdapter As SqlDataAdapter
Dim dt As New DataTable
Dim objds As New DataSet
Dim strSQLck As String
strSQLck = "EXEC Count_Member"
objConnck = New SqlConnection(sysconfigck)
objCmdck = New SqlCommand(strSQLck, objConnck)
If (objConnck.State = ConnectionState.Open) Then
objConnck.Close()
End If
objConnck.Open()
dtAdapter = New SqlDataAdapter(strSQLck, objConnck)
dtAdapter.Fill(dt)
If dt.Rows.Count > 0 Then
lbRBselect.Text = dt.Rows(0)("CountMember")
Else
lbRBselect.Text = "0"
End If
Catch ex As Exception
End Try
End Sub
อีกแบบคือไม่ต้อง select count ที่ stored procedure แล้วก็เอา dt.rows.count มาเลยเพราะมันคือจำนวนที่มันนับได้อยู่แล้ว
|
 |
 |
 |
 |
Date :
2013-02-24 01:09:23 |
By :
N3BUL4 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโทษน่ะครับ ผมไม่เก่งจริงๆ คงติด ที่ connection ของ Private Sub Button3 ข้อมูลจึงไม่แสดงให้ผม
ซึ่ง Private Sub Button1 ก็เชื่อมได้แล้วแต่ไม่รู้ว่าจะแก้ยังให้ Private Sub Button3 เชื่อมกับฐานข้อมูลผม
Code (VB.NET)
Private Sub FormDrug2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
connection = New SqlConnection(conStr)
If connection.State = ConnectionState.Closed Then
connection.Open()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
sql = "SELECT * FROM ViewDrug"
command = New SqlCommand(sql, connection)
adapter = New SqlDataAdapter(command)
dataSt = New DataSet()
adapter.Fill(dataSt, "viewdrug")
DataGridView1.DataSource = dataSt.Tables("viewdrug")
Dim headerText() As String = {"รหัส", "ชื่อยา", "หมวด", "ผู้ผลิต", "ราคาขาย", "คงเหลือ", "วันหมดอายุ"}
For i = 0 To headerText.Count - 1
DataGridView1.Columns(i).HeaderText = headerText(i)
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Close()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Try
Dim objConnck As SqlConnection
Dim objCmdck As SqlCommand
Dim dtAdapter As SqlDataAdapter
Dim dt As New DataTable
Dim objds As New DataSet
sql = "EXEC Count_Drug"
objConnck = New SqlConnection(conStr)
objCmdck = New SqlCommand(sql, objConnck)
If (objConnck.State = ConnectionState.Open) Then
objConnck.Close()
End If
objConnck.Open()
dtAdapter = New SqlDataAdapter(sql, objConnck)
dtAdapter.Fill(dt)
If dt.Rows.Count > 0 Then
TextBox1.Text = dt.Rows(0)("CountDrug")
Else
TextBox1.Text = "0"
End If
Catch ex As Exception
End Try
End Sub
|
 |
 |
 |
 |
Date :
2013-02-24 14:03:17 |
By :
วัลลภ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เปลี่ยนมาใช้ connection ที่ใช้อยู่ก็ได้ครับ
command = New SqlCommand(sql, connection)
Dim sysconfigck As String =WebConfigurationManager.ConnectionStrings("test1ConnectionString").ConnectionString
อันนี้คือผมเรียกใช้ connection ที่สร้างไว้ที่ไฟล์ web.config ครับ
การใช้ try catch จะทำให้ code เรารันผ่านไปได้โดยไม่แสดงหน้าที่ตัวหนังสือเยอะ ๆ
วิธีเพิ่มการแสดง error ก็ให้แสดงผ่านอะไรซักอย่างตรง catch ครับ แบบนี้
try
....
Catch ex As Exception
lbError.text = "Error: " & ex.ToString
End Try
|
 |
 |
 |
 |
Date :
2013-02-24 23:07:27 |
By :
N3BUL4 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|