台灣最大程式設計社群網站
線上人數
819
 
會員總數:245900
討論主題:189495
歡迎您免費加入會員
討論區列表 >> VB.NET >> VB連結MS-SQL讀取不出資料
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
VB連結MS-SQL讀取不出資料
價值 : 20 QP  點閱數:914 回應數:8
樓主

Aaron
門外漢
0 1
132 2
發送站內信

請問大大們
小弟近日研究VB連結MS-SQL讀取部分資料
程式碼如下
============================================================
Private Sub SELECT_Button_Click(sender As Object, e As EventArgs) Handles SELECT_Button.Click
Dim conn = New SqlConnection '設"Conn"為新的SQL連線
conn.ConnectionString = "Data Source=192.168.11.XX;Initial Catalog=UXXN;Persist Security Info=True;User ID=XX;Password=XXXXXXXXXXX" '指定SQL Server MDF檔來源
conn.Open() '開啟連線
TESTStatus1.Text = ""
TESTStatus2.Text = ""
Dim strinsert As String = "select * from UXXN.dbo.MOCTA where (MOCTA.CREATE_DATE >= N'20180101')" '把SQL指令先轉成字串
'strinsert &= "Values ('" & TESTStatus1.Text & "','" & TESTStatus2.Text & "')" <====這個不太懂目的為何??
TESTStatus1.Text = strinsert

Dim cmnd As SqlCommand = New SqlCommand(strinsert, conn) '定義cmnd為SqlCommand指令

'cmnd.ExecuteNonQuery() '呼叫Cmnd執行Sql指令 <=====這行會出現錯誤
TESTStatus2.Text = cmnd.ExecuteNonQuery()
MessageBox.Show("完成")
conn.Close() '結束連線
End Sub
============================================================



但是 TESTStatus2.Text = -1
小弟百思不解 還請大大們多多指點
感恩不盡阿~


搜尋相關Tags的文章: [ VB連結 ] , [ MS-SQL ] , [ 資料庫 ] ,
本篇文章發表於2018-08-23 11:25
1樓
回應

小魚
檢舉此回應
註解不對吧,
這應該不是讀檔案的,
是透過TCP/IP連接的,
問題是...
你的資料庫架起來了嗎?
你能夠開SSMS用TCP/IP的方式連資料庫嗎?
本篇文章回覆於2018-08-23 12:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小魚
檢舉此回應
然後你做了 SELECT 的動作,後面竟然是 ExecuteNonQuery ...
本篇文章回覆於2018-08-23 12:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Kog
檢舉此回應
[url]https://msdn.microsoft.com/zh-tw/library/system.data.odbc.odbccommand(v=vs.110).aspx[/url]
本篇文章回覆於2018-08-24 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Kog
檢舉此回應
1.
ExecuteNonQuery 回傳受影響的資料列數目
如果要讀取資料,可用ExecuteReader()

2.
試想你的查詢指令結果可以想像成是一筆資料集合
如果要放進textbox裡,應該要取出該欄位的項目放進去裡面

3.
&= 把後面的東西加進去,可以想像是+=
本篇文章回覆於2018-08-24 10:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Sdany
捐贈 VP 給 Sdany 檢舉此回應
'cmnd.ExecuteNonQuery() '呼叫Cmnd執行Sql指令 <=====這行會出現錯誤

程式會告訴你錯誤訊息吧?
要看錯誤訊息顯示什麼。
本篇文章回覆於2018-08-27 16:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Aaron
檢舉此回應
小弟修改程式如下:
仍然無法讀值
還請大大們在多多指點阿

Private Sub SELECT_Button_Click(sender As Object, e As EventArgs) Handles SELECT_Button.Click
Dim conn = New SqlConnection '設"Conn"為新的SQL連線
Try
conn.ConnectionString = "Data Source=192.168.11.30;Initial Catalog=USEN;Persist Security Info=True;User ID=sa;Password=d!g!w!n2015" '指定SQL Server MDF檔來源
conn.Open() '開啟連線

TESTStatus1.Text = ""
TESTStatus2.Text = ""

Dim strinsert As String = "select * from UXXN.dbo.MOCTA where (MOCTA.CREATE_DATE >= N'20180101')" '把SQL指令先轉成字串
TESTStatus1.Text = strinsert

Dim cmnd As SqlCommand = New SqlCommand(strinsert, conn) '定義cmnd為SqlCommand指令
Dim data As SqlDataReader

data = cmnd.ExecuteReader()
For i As Integer = 0 To 30
TESTStatus2.Text = TESTStatus2.Text & data(i).ToString
Next

conn.Close() '結束連線

Catch ex As Exception
End Try

End Sub

謝謝你們
本篇文章回覆於2018-08-28 15:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Aaron
檢舉此回應
抱歉~小弟將前情提要說明一下:
兩個月前小弟研究透過VBA讀取鼎新資料庫中數據
經過兩個星期的努力終於完成
所以conn.ConnectionString =XXXXXXXX
與VBA相同但是讀取各個欄位卻是用很笨的方式
======需先查詢該資料表中所有欄位名稱有哪些
Sub 按鈕1_Click()
'VBA內容
Dim i As Integer, j As Integer, sht As Worksheet
Dim strCn As String, strSQL As String, K As String, L As String, M As String

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

K = Worksheets("製令工單查詢").Range("D1").Value
L = Worksheets("製令工單查詢").Range("E1").Value
M = Worksheets("製令工單查詢").Range("J1").Value
L = Worksheets("製令工單查詢").Range("K1").Value

strCn = "Provider=SQLOLEDB.1;Password=XXXXXXXXXXX;Persist Security Info=True;User ID=XX;Initial Catalog=UXXN;Data Source=192.168.11.XX;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"

strSQL = "select * from UXXN.dbo.MOCTA where (MOCTA.CREATE_DATE >= N'20180101')"
cn.Open strCn
rs.Open strSQL, cn

Worksheets("製令工單查詢").Range("A5:IV65536").Clear '清除欄位內容

i = 5 'i行
j = 1
Set sht = ThisWorkbook.Worksheets("製令工單查詢")
Do While Not rs.EOF '當數據指針未移到記錄集末尾時,循環下列操作

sht.Cells(i, j + 0) = rs("COMPANY") '把當前記錄的字段1的值保存到sheet1工作表的第i行第1列
sht.Cells(i, j + 1) = rs("CREATOR")
sht.Cells(i, j + 2) = rs("USR_GROUP")
sht.Cells(i, j + 3) = rs("CREATE_DATE")
sht.Cells(i, j + 4) = rs("MODIFIER")
sht.Cells(i, j + 5) = rs("MODI_DATE")
.......內容過長就不一一列出

rs.MoveNext '把指針移向下一條記錄
i = i + 1 'i加1,準備把下一記錄相關字段的值保存到工作表的下一行
Loop '循環

rs.Close
cn.Close

End Sub
========
現在想透過VB也讀出值來
但是一直找不到正確的方法
所以來請教大大們
還請大大們指點迷津
或是有個小範例來參考
謝謝你們~
本篇文章回覆於2018-08-28 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小魚
檢舉此回應
參考一下 這一篇
本篇文章回覆於2018-08-29 07:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.