close
標題:

asp.net 連結 SQL 的問題

發問:

我在 Button1 物件的 Click 事件中填入以下的敘述.....Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '宣告變數Conn為一新的SQL連結物件 Dim Conn As SqlConnection = New SqlConnection '指定Conn的連結字串為... 顯示更多 我在 Button1 物件的 Click 事件中填入以下的敘述..... Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '宣告變數Conn為一新的SQL連結物件 Dim Conn As SqlConnection = New SqlConnection '指定Conn的連結字串為 "server=localhost;uid=sa;pwd=;database=fly" Conn.ConnectionString = "server=localhost;uid=sa;pwd=;database=fly" '開啟SQL連結 Conn.Open() '宣告並定義變數cmd為一SQL指令"select * from 客戶資料"並由Conn這個連結物件取得 Dim cmd As SqlCommand = New SqlCommand("select * from 客戶資料", Conn) '宣告變數dr為一SQL資料集(RecordSet)並承接cmd的計算結果 Dim dr As SqlDataReader = cmd.ExecuteReader() '設定Me.DataGrid1的資料來源為dr Me.DataGrid1.DataSource = dr Me.DataGrid1.DataBind() 關閉連結 Conn.Close() End Sub 我成功的把資料從 SQL 裡帶入到 DataGrid 物件中 我的問題是.... 那我要如何把相同的資料集透過某種方法(或許是"Fiend"吧?) 選出特定的一筆(ROW)資料把每一欄(Col)的資料一一放入指定的 TextBox(或其他物件) 中呢? 很抱歉..因為過去都是用VB6寫程式的,ASP.NET對我而言很陌生,可以的話順道幫我看看我的註解有沒有錯誤,萬分感謝!! 更新: 酷兒 謝謝你!! 那請問 DataTable 這個東東有什麼 "方法" 可以 "Fiend" 出我指定的資料嗎? (例如我搜尋"A"欄內唯一符合的資料,然後整筆拿來用)另外我的文字註解有錯嗎? 更新 2: 酷兒 Dim dt As New DataTable dt.Load(dr) 這段你有試過嗎? 系統一直告訴我"'Load' 不是System.Data.DataTable 的成員" 更新 3: Dim dt As New DataTable dt.Load(dr) "'Load' 不是System.Data.DataTable 的成員" 你用的是"ASP.NET 2003" 嗎? 最接近的是"LoadDataRow"

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

最佳解答:

SqlDataReader是透過資料流方式來讀取資料,因此建議你先將資料轉存到DataTable上會比較好操作 DataTable可以離線存取資料,透過 Row 和 Col 來控制你要讀取的資料內容 我延續你先前的程式, dr 是你執行後的回傳資料物件 你只要再建一個 DataTable, DataTable有一個多載的函式 Load ,會將資料載入至DataTable 中 Dim dr As SqlDataReader = cmd.ExecuteReader() Dim dt As New DataTable dt.Load(dr) TextBox1.Text = dt.Rows(0)(欄位1) TextBox2.Text = dt.Rows(0)(欄位2) 希望有幫助到你~ ***Rows(0)表示取資料集中的第一筆資料 ***欄位1:可以是欄位index, 或是欄位名稱 2008-06-02 09:26:27 補充: Dim dt As New DataTable dt.Load(dr) 程式RUN過沒問題的 DataTable 提供 Load 函式可以將資料載入到DataTable MSDN上有這個函式庫的說明 http://msdn.microsoft.com/zh-tw/library/system.data.datatable.load(VS.80).aspx 2008-06-02 09:32:13 補充: Q: 請問 DataTable 這個東東有什麼 "方法" 可以 "Fiend" 出我指定的資料嗎 這是Find 的意思嗎? 如果是Find,DataTable 提供 Select 函式,可針對DataTable內資料集進行篩選 Dim dr() As DataRow = dt.Select(”id=779”) TextBox1.Text = dr(0)(”name”) 請參考MSDN: http://msdn.microsoft.com/zh-tw/library/det4aw50(VS.80).aspx 2008-06-02 09:42:43 補充: 註解大致沒問題,有一個小地方我建議修改 '宣告變數dr為一SQL資料集(RecordSet)並承接cmd的計算結果 Dim dr As SqlDataReader = cmd.ExecuteReader() '宣告 dr 為資料讀取物件讀取cmd執行後的資料集 ***如果有說明錯誤,請看過的高手再補充*** 2008-06-02 12:59:01 補充: 真怪~我用的是 VS2005 MSDN上的說明也很清楚,DataTable的確有Load函式 你方便把你的程式 mail 給我,我可以幫你 check 一下問題 http://msdn.microsoft.com/zh-tw/library/system.data.datatable.load(VS.80).aspx 2008-06-02 20:20:57 補充: 試著在你的程式碼第一行位置,加上 Imports System.Data

其他解答:BFC66BE0445C3814
arrow
arrow

    ddhdxb5 發表在 痞客邦 留言(0) 人氣()