none
vb.net数据库问题 RRS feed

  • 问题

  • objComm.CommandText = "select * from sale"
        With  '这里要写什么才可以运行下面的语句?
          If ![SaleNo] = TextBox1.Text Then
    		textbox1.text="abc"
    	  end if


    2010年8月26日 1:21

答案

  • 你好

    如果你想找到全部的ROW 你需要用FOR LOOP

    E.G.

    For i as Integer =0 to tbl.rows.count-1

    if tbl.rows(i)("SalesNo") = TextBox1.Text Then

     

    End if

    Next

    如果你想看看是不是會部都是和TEXTBOX1.TEXT 一樣

    你可能要改變一下你的CODE

    例如:

    dim result as boolean = true

    For i as Integer =0 to tbl.rows.count-1

    if tbl.rows(i)("SalesNo") <> TextBox1.Text Then '當任何一個 SALESNO 和TEXT1.TEXT 有不同的話, 便設定RESULT 為FALSE

    result = false

    End if

    Next

    if result then ' ' 如果所有SALESNO 是和TEXTBOX1.TEXT 一樣的話, 這便可以 SET TEXTBOX1.TEXT = "ABC" 了
    textbox1.text="abc"

    end if

    Please correct me if my concept is wrong


    Chi
    2010年8月26日 7:39
    版主

全部回复

  • vb.net和vb6不一样了,先看点ADO.NET的书籍吧

    ' Assumes that connection is a valid SqlConnection object.
    Dim queryString As String = _
     "select * from sale"
    Dim adapter As SqlDataAdapter = New SqlDataAdapter( _
     queryString, connection)
    
    Dim ds As DataSet = New DataSet
    adapter.Fill(ds)
    
     If ds.Tables(0).Rows(0)("SaleNo").Tostring() = TextBox1.Text Then
     		textbox1.text="abc" 	 
    end if

    http://feiyun0112.cnblogs.com/
    • 已建议为答案 ChiYauModerator 2010年8月26日 4:47
    • 取消建议作为答案 ckjason 2010年8月26日 6:25
    2010年8月26日 1:57
    版主
  • 你好

    我認同feiyun0112MVP, 版主 的說法, vb.net和vb6不一样

    所以當你比較資料庫內容時你可以參考以下的CODE

    Private sub LoadData() ' DATAGRIDVIEW 绑定数据库
     Dim objCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;")

            Dim objComm As New OleDbCommand()
            objComm.CommandText = "SELECT * FROM sales" ' 這是一個QUERY STRING 來選取資料的
            objComm.Connection = objCon
            Dim adapter As New OleDbDataAdapter(objComm) '選取資料後可以用OleDbDataAdapter 把資料存到DATATABLE 裡
            Dim tbl As New DataTable ' 用來存資料, 等一會可以顯示到DATAGRIDVIEW中

            Try
                objCon.Open() ' 開啟 ACCESS CONNECTION
                adapter.Fill(tbl) ' 把資料存到DATATABLE 裡  '和ADODB RECORDSET 的 概念可能是差不多的
            
    if tbl.rows.count>0 then '去看看上面的QUERY 能不能找到資料
        if tbl.rows(0)("SalesNo") = TextBox1.Text Then '看看 SALESNO 的內容和TEXT1.TEXT 同不同

            textbox1.text="abc"

          end if

    end if




            Catch ex As Exception
                MsgBox(ex.Message) '有問題ERROR 時 POP UP ERROR MESSAGE BOX
            Finally
                adapter = Nothing '清理 data adapter object
                objComm = Nothing '清理 command object
                objCon.Close()  '關掉連線
                objCon = Nothing '清理 connection object
            End Try
        End Sub

    Please correct me if my concept is wrong

     

     



    Chi
    • 已标记为答案 ckjason 2010年8月26日 6:25
    • 取消答案标记 ckjason 2010年8月26日 6:28
    2010年8月26日 4:54
    版主
  • 你好

    我認同feiyun0112MVP, 版主 的說法, vb.net和vb6不一样

    所以當你比較資料庫內容時你可以參考以下的CODE

    Private sub LoadData() ' DATAGRIDVIEW 绑定数据库
     Dim objCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;")

            Dim objComm As New OleDbCommand()
            objComm.CommandText = "SELECT * FROM sales" ' 這是一個QUERY STRING 來選取資料的
            objComm.Connection = objCon
            Dim adapter As New OleDbDataAdapter(objComm) '選取資料後可以用OleDbDataAdapter 把資料存到DATATABLE 裡
            Dim tbl As New DataTable ' 用來存資料, 等一會可以顯示到DATAGRIDVIEW中

            Try
                objCon.Open() ' 開啟 ACCESS CONNECTION
                adapter.Fill(tbl) ' 把資料存到DATATABLE 裡  '和ADODB RECORDSET 的 概念可能是差不多的
            
    if tbl.rows.count>0 then '去看看上面的QUERY 能不能找到資料
        if tbl.rows(0)("SalesNo") = TextBox1.Text Then '看看 SALESNO 的內容和TEXT1.TEXT 同不同

            textbox1.text="abc"

          end if

    end if




            Catch ex As Exception
                MsgBox(ex.Message) '有問題ERROR 時 POP UP ERROR MESSAGE BOX
            Finally
                adapter = Nothing '清理 data adapter object
                objComm = Nothing '清理 command object
                objCon.Close()  '關掉連線
                objCon = Nothing '清理 connection object
            End Try
        End Sub

    Please correct me if my concept is wrong

     

     



    Chi

      if tbl.rows(0)("SalesNo") = TextBox1.Text Then '看看 SALESNO 的內容和TEXT1.TEXT 同不同

    这句语句只能寻找row(0),如果要要寻找全部的row,在和textbox1.text进行对比,该怎样写?

    2010年8月26日 6:32
  • 循环

    for i=0 to tbl.rows.count-1

    tbl.rows(i)("


    http://feiyun0112.cnblogs.com/
    2010年8月26日 6:35
    版主
  • 你好

    如果你想找到全部的ROW 你需要用FOR LOOP

    E.G.

    For i as Integer =0 to tbl.rows.count-1

    if tbl.rows(i)("SalesNo") = TextBox1.Text Then

     

    End if

    Next

    如果你想看看是不是會部都是和TEXTBOX1.TEXT 一樣

    你可能要改變一下你的CODE

    例如:

    dim result as boolean = true

    For i as Integer =0 to tbl.rows.count-1

    if tbl.rows(i)("SalesNo") <> TextBox1.Text Then '當任何一個 SALESNO 和TEXT1.TEXT 有不同的話, 便設定RESULT 為FALSE

    result = false

    End if

    Next

    if result then ' ' 如果所有SALESNO 是和TEXTBOX1.TEXT 一樣的話, 這便可以 SET TEXTBOX1.TEXT = "ABC" 了
    textbox1.text="abc"

    end if

    Please correct me if my concept is wrong


    Chi
    2010年8月26日 7:39
    版主