C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

検索値がないときの対処法

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■91797 / inTopicNo.1)  検索値がないときの対処法
  
□投稿者/ たかし (1回)-(2019/08/04(Sun) 15:22:46)

分類:[.NET 全般] 

はじめまして、たかしと申します。

   Private Sub 検索Button_Click(sender As Object, e As EventArgs) Handles 検索Button.Click
     
        Dim Syn_Code As String
        Tbl_syouhinBindingSource.MovePrevious()
        Tbl_syouhinBindingSource.MoveFirst()
        Syn_Code = InputBox("商品コードを入力してください。")
        If Syn_Code = "" Then
            Return
        End If
        Do Until Syn_Code = Me.商品コードComboBox.Text
            Tbl_syouhinBindingSource.MoveNext()
        Loop

   End Sub

SQLサーバーにあるテーブルに繋いで上記のような処理を行っています。
このときInputBoxに「存在しない数字」を入力すると、無限ループというか、画面が固まってしまいます。
このような場合になにかトラップする手だてはないものでしょうか?

引用返信 編集キー/
■91798 / inTopicNo.2)  Re[1]: 検索値がないときの対処法
□投稿者/ WebSurfer (1863回)-(2019/08/04(Sun) 16:41:06)
No91797 (たかし さん) に返信

> このときInputBoxに「存在しない数字」を入力すると、無限ループというか、画面が固まってしまいます。
> このような場合になにかトラップする手だてはないものでしょうか?

以下のようにしてみる。Else で Break

If BindingSource1.Position + 1 < BindingSource1.Count Then
BindingSource1.MoveNext()

上記は MSDN ライブラリの BindingSource.MoveNext メソッドのサンプルコードの一部です。自分でも
そういう記事を探してみましょう。
引用返信 編集キー/
■91805 / inTopicNo.3)  Re[2]: 検索値がないときの対処法
□投稿者/ たかし (2回)-(2019/08/05(Mon) 12:02:34)
No91798 (WebSurfer さん) に返信
> ■No91797 (たかし さん) に返信
> 
>>このときInputBoxに「存在しない数字」を入力すると、無限ループというか、画面が固まってしまいます。
>>このような場合になにかトラップする手だてはないものでしょうか?
> 
> 以下のようにしてみる。Else で Break
> 
> If BindingSource1.Position + 1 < BindingSource1.Count Then
>     BindingSource1.MoveNext()
> 
> 上記は MSDN ライブラリの BindingSource.MoveNext メソッドのサンプルコードの一部です。自分でも
> そういう記事を探してみましょう。

WebSurferさん、たかしです。
次のコードで無事目的を達成することが出来ました。
ありがとうございますn( _ _ )n

 Private Sub 検索Button_Click(sender As Object, e As EventArgs) Handles 検索Button.Click
       
        Dim Syn_Code As String
        Tbl_syouhinBindingSource.MovePrevious()
        Tbl_syouhinBindingSource.MoveFirst()
        Syn_Code = InputBox("商品コードを入力してください。")
        If Syn_Code = "" Then
            Return
        End If
        Do Until Syn_Code = Me.商品コードComboBox.Text
            If Tbl_syouhinBindingSource.Position + 1 < Tbl_syouhinBindingSource.Count Then
                Tbl_syouhinBindingSource.MoveNext()
            Else
                MsgBox("その商品コードは存在しません。")
                Return
            End If
        Loop
        MsgBox("検索完了しました。")
    End Sub

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ