討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
以ADO.NET方式連結資料庫出錯@@
更改我的閱讀文章字型大小
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 09:19:00
目前開發環境是VB2005 + SQL server 2005express
SQL server是在一台server上 vb2005是在不同電腦上
如果是以拖拉bindingsource到form上並設定資料來源
這樣運作都正常
不過想試試用ADO.NET連 寫了一個簡單的程式不過失敗了QQ
請幫我看看哪裡出錯了吧
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Dim connStr, selectCmd As String, i As Integer
     connStr = "Server=Server1 ;database=sqlexpress.TEST; uid= ;pwd =;"
     selectCmd = "select * from score"
     Dim conn As SqlConnection, cmd As SqlCommand, reader As SqlDataReader
     conn = New SqlConnection(connStr)
     conn.Open()
     cmd = New SqlCommand(selectCmd, conn)
     reader = cmd.ExecuteReader()

     For i = 0 To reader.FieldCount - 1
     txtShow.Text &= reader.GetName(i) & vbTab
     Next
     txtShow.Text &= vbNewLine & vbNewLine
     Do While reader.Read()
     For i = 0 To reader.FieldCount - 1
     txtShow.Text &= reader.Item(i) & vbTab
     Next
     txtShow.Text &= vbNewLine
     Loop
     conn.Close()
    End Sub
作者 : pantc328(好說) C#優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 894 | 人氣 14154 | 評價 3400 | 評價/貼文 3.8 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 10:21:16
錯錯錯,記的沒錯的話,就是錯,永遠不會對,因為我記的Sql Express 的產品只能開發單機的資料,也就是程式跟Sql Express 的 資料庫要同一台主機
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人kevin910註記此篇回應為最佳解答 2006/9/22 上午 11:04:19
錯錯錯 too [SQL Express]不是只能開發單機的資料..大錯特錯...
發文者會連不到原因有可能是在[Server=Server1]....像我的連接字串這一部份是[Server=.\SQLEXPRESS]遠端的話就是[Server=xxx.xxx.xxx.xxx\SQLEXPRESS]
如果你的Server Name是Server1那麼[Server=Server1\SQLEXPRESS]也可以...
會需要加上'\SQLEXPRESS'的原因是SQL 2005 Express預設的Instance Name是[SQLEXPRESS],如果你是閉著眼睛按下一步的話應該就是我敘述的方式連接...記得SQL Browser服務要開

>錯錯錯,記的沒錯的話,就是錯,永遠不會對,因為我記的Sql Express 的產品只能開發單機的資料,也就是程式跟Sql Express 的 資料庫要同一台主機
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 11:24:28
>錯錯錯 too [SQL Express]不是只能開發單機的資料..大錯特錯...
>發文者會連不到原因有可能是在[Server=Server1]....像我的連接字串這一部份是[Server=.\SQLEXPRESS]遠端的話就是[Server=xxx.xxx.xxx.xxx\SQLEXPRESS]
>如果你的Server Name是Server1那麼[Server=Server1\SQLEXPRESS]也可以...
>會需要加上''\SQLEXPRESS''的原因是SQL 2005 Express預設的Instance Name是[SQLEXPRESS],如果你是閉著眼睛按下一步的話應該就是我敘述的方式連接...記得SQL Browser服務要開

現在似乎連的上去了 不過產生新的錯誤XD
<<使用者 '' 的登入失敗。使用者與受信任的 SQL Server 連接相關聯。>>
他好像沒有做Windows驗證 看書上寫uid跟pwd都不加就表示使用目前登入系統的Windows帳號連接 程式碼如下
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Dim connStr, selectCmd As String, i As Integer
     connStr = "Server=Server1\sqlexpress ;database=TEST;"
     selectCmd = "select * from score"
     Dim conn As SqlConnection, cmd As SqlCommand, reader As SqlDataReader
     conn = New SqlConnection(connStr)
     conn.Open()
     cmd = New SqlCommand(selectCmd, conn)
     reader = cmd.ExecuteReader()

     For i = 0 To reader.FieldCount - 1
     txtShow.Text &= reader.GetName(i) & vbTab
     Next
     txtShow.Text &= vbNewLine & vbNewLine
     Do While reader.Read()
     For i = 0 To reader.FieldCount - 1
     txtShow.Text &= reader.Item(i) & vbTab
     Next
     txtShow.Text &= vbNewLine
     Loop
     conn.Close()
    End Sub
End Class
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 11:45:05
所以你已經搞定囉...
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 上午 11:50:35
其實沒有搞定因為程式跑到conn.Open()就掛了lol
出現的錯誤是
<<使用者 '' 的登入失敗。使用者與受信任的 SQL Server 連接相關聯。>>
他好像沒有做Windows驗證 不過我的設定應該是都ok了阿
我去看系統事件記錄 要登入的使用者是N/A
這樣是程式的問題嗎?
作者 : johnny6740(牧童哥) VC++優秀好手驅動程式優秀好手Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 791 | 人氣 24021 | 評價 3770 | 評價/貼文 4.77 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人kevin910註記此篇回應為很有道理 2006/9/22 下午 12:06:56
那請問你目前的登入帳號,在 SQL Express 上有使用權限嗎?如果你不用一個固定的 SQL 帳號登入,那你就必須把每一個可能登入的 Windows 使用者帳號加入到 SQL Express 的使用者當中
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 12:16:55
目前的帳號在SQL express上有使用權限~
但是從驗證出錯的訊息來看
<<使用者 '' 的登入失敗。使用者與受信任的 SQL Server 連接相關聯。>>
這樣是不是並沒有使用目前的使用者做驗證呢?
還有我看的VB2005的書上 沒有說到怎麼用SQL帳號登入XD
請問是在哪些地方需要設定呢?

>那請問你目前的登入帳號,在 SQL Express 上有使用權限嗎?如果你不用一個固定的 SQL 帳號登入,那你就必須把每一個可能登入的 Windows 使用者帳號加入到 SQL Express 的使用者當中
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人kevin910註記此篇回應為最佳解答 2006/9/22 下午 01:21:50
你應該是用[只有Windows認證]你要開啟[混合驗證模式]對你比較方便...怎麼開...最快的方式去下載[SQL Server Management Studio Express]來開....哪裡抓...用那個關鍵字找會有一堆

混合驗證打開後...自己建一個帳號或者用SA再加上[uid=ooo ;pwd =xxx;"]就可以了
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 01:51:44
終於ok了!! 建好帳號後把相關權限設定一下就可以連線了~
謝謝囉!相信還會陸續遇到一些問題 以後再麻煩各位了XD

>你應該是用[只有Windows認證]你要開啟[混合驗證模式]對你比較方便...怎麼開...最快的方式去下載[SQL Server Management Studio Express]來開....哪裡抓...用那個關鍵字找會有一堆
>
>混合驗證打開後...自己建一個帳號或者用SA再加上[uid=ooo ;pwd =xxx;']就可以了
作者 : johnny6740(牧童哥) VC++優秀好手驅動程式優秀好手Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 791 | 人氣 24021 | 評價 3770 | 評價/貼文 4.77 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 02:26:43
關於 Windows 驗證,我的想法跟實際實驗結果好像不太一樣,請前輩幫我看一下

我 Server 端的電腦是安裝 SQL Server Express,是設定混合式驗證,所以 Windows 帳號跟 sa 帳號在 Server 端登入都沒問題

但我在 Client 端利用 SQL Management Studio Express 登入 Server 端時,我選用 Windows 驗證的方式登入,此時帶入驗證的帳號應該是我 Client 的帳號,而非 Server 端的帳號吧 (兩個帳號名稱並不相同)。但奇怪的是,竟然可以登入,而且是用 Server 端的帳號。

難道 SQL 設定 Windows 驗證也是指定一個固定的帳號嗎?那又是在那裡設定呢?那如果要依連進來的使用者而有不同的權限,又該如何設定呢?謝謝

PS : 剛剛我在 SQL Management Studio Express 的 "安全性 | 登入" 下,想新增 Windows 使用者,但似乎無法新增 Client 端電腦的使用者名稱
作者 : kevin910(Kevin)
[ 貼文 14 | 人氣 5564 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 02:37:37
要做Windows驗證的條件是Server端跟Client端都要有一個ID&密碼都相同的帳號
會不會是因為你兩邊剛好有一樣的帳號所以可以登入呢?
另外你是要新增Windows使用者嗎?是的話 應該是從我的電腦--->右鍵--->管理--->本機使用者和群組那邊新增,在SQL Management Studio Express裡新增的僅是SQL server的帳戶而已喔~
不知道我有沒有說錯@@
有錯的話還請前輩指教阿~~
我還只是個學習中的小嫩咖XD
作者 : johnny6740(牧童哥) VC++優秀好手驅動程式優秀好手Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 791 | 人氣 24021 | 評價 3770 | 評價/貼文 4.77 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 03:18:38
當我從 Client 端利用 SQL Management Studio Express 登入 Server 端的 SQL Express 時,我從 "管理 | 活動監視器" 底下看到登入的帳號為 RDWEB\Johnny,其中 RDWEB 是 Server 端的主機名稱,而 Johnny 則是使用者帳號。

而後面還有一欄 "主機" 則顯示 JOHNNY-OFFICE,那是我 Client 端電腦的名稱,我在 Client 端用的帳號是 JohnnyF,所以我才覺得納悶,需要這裡的前輩幫我解惑一下
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 03:31:35
你用Windows驗證登入可以成功...表示你目前Client登入的身分在SQL Server的主機也有...而且它是有權限可以使用SQL Server的...
作者 : johnny6740(牧童哥) VC++優秀好手驅動程式優秀好手Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 791 | 人氣 24021 | 評價 3770 | 評價/貼文 4.77 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 04:09:49
那請問是在那裡設定的啊?
我在 Server 端電腦的 "電腦管理 | 本機使用者族群 | 使用者" 底下並未看到之前登入的 Client 端帳號
而在在 SQL Server Express 的使用者中也沒有
所以實在覺得很納悶
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 04:59:03
>那請問是在那裡設定的啊?
>我在 Server 端電腦的 '電腦管理 | 本機使用者族群 | 使用者' 底下並未看到之前登入的 Client 端帳號
>而在在 SQL Server Express 的使用者中也沒有
>所以實在覺得很納悶
SQL Server Express Windows認證部分是整合Server的主機帳號...
你直接到[SQL Management Studio]裡面的[安全性]->[登入]去看看....

Windows認證定義的方式很多...這一塊你自己去研究吧!...拜託別再問這種問題了....
再不然去買本書吧...想要會又不付出...
作者 : johnny6740(牧童哥) VC++優秀好手驅動程式優秀好手Assembly優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 791 | 人氣 24021 | 評價 3770 | 評價/貼文 4.77 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/22 下午 06:11:51
>Windows認證定義的方式很多...這一塊你自己去研究吧!...拜託別再問這種問題了....
>再不然去買本書吧...想要會又不付出...

我是這方面的新手,如果我的問題造成你的困擾,那我很抱歉
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.09375