如何使用vb.net循环访问MS SQL数据库?

时间:2014-05-20 16:09:38

标签: php sql vb.net

我试图在visual basic中实现以下php代码。我用PHP编写它是因为我知道我可以用那种语言做我想做的事,但我不能为我的生活弄清楚如何让它在Visual Basic中工作以循环访问MS SQL数据库。 / p>

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'FakeDB');

$result = mysqli_query($con,"SELECT * FROM FakeDB");
$concatDupes = Array();
for ( $i = 0, $i< count($result), $i++) {
    if ( $result[$i] == $result[$i + 1] {
         array_push($concatDupes,$result[$i] + $result[$i + 1])
    } else {
            array_push( $concatDupes, $result[$i])
    }
}

我试图使用this post中的代码,但无济于事。 (我将MsgBox("hello")置于while循环内,没有发生任何事情)我还调查了以下内容,但也没有成功。

Dim i = Me.PaymentTableAdapter.GetData().HazWasteAmtColumn.ToString()
MsgBox(i) 'no message box
Dim i = Me.PaymentTableAdapter.GetData().Count
MsgBox(i) ' also no message box
Dim i = Me.PaymentTableAdapter.GetData().Count
MsgBox(GetType(i)) 'type of i is not defined

我知道我的查询返回结果,因为它在DataGridView中工作正常。

其他有用信息:

  • 观看i(上面引用的i中的任何一个),无论我尝试过什么,都不会显示任何内容。
  • 我在Public Sub ReadData(ByVal connectionString As String, ByVal queryString As String)(链接页面中的完整功能)中使用以下内容时会发生什么:

    Dim connect = WindowsApplication1.My.Settings.ShopMgtConnectionString
    Dim querty As String = "SELECT * "
    querty = querty + "FROM SM.PartItem "
    ReadData(connect, querty)
    

    立即窗口输出(错误列表不显示):

    A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll
    A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll
    A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll
    A first chance exception of type 'System.Data.ConstraintException' occurred in System.Data.dll
    A first chance exception of type 'System.ArgumentException' occurred in System.Data.dll
    

编辑:这是ReadData()方法

Public Sub ReadData(ByVal connectionString As String, _
    ByVal queryString As String)
    Using connection As New OleDbConnection(connectionString)
        Dim command As New OleDbCommand(queryString, connection)

        connection.Open()

        Dim reader As OleDbDataReader = command.ExecuteReader()
        While reader.Read()
            Console.WriteLine(reader(0).ToString())
        End While
        reader.Close()
    End Using 
End Sub

编辑,再次...... 我已经对正在运行的程序进行了屏幕录制。它没有做任何有用的事情。

http://youtu.be/i7oNVDXUw78

1 个答案:

答案 0 :(得分:1)

确保您正在阅读非空数据:

While reader.Read()
   If reader.IsDBNull(0) = False Then
     Console.WriteLine(reader.GetValue(0).ToString())
   End If
End While