none
VB2008 SQL RRS feed

  • 質問

  • かさねがさね、すみません。

    SQLで質問ですが

    データを抽出するときにそのデータがない場合に発生するエラーを
    回避するにはどうすればいいのでしょうか

    データベースは JET 4.0 を使っています
    2009年7月29日 1:59

回答

  • xとyの値を確認してみて下さい。例えばyは番号でなければならないのに文字が入っていたりしませんか? もしくはyを「'」で囲む必要がないのかもしれません。
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク keisan115 2009年7月29日 4:40
    2009年7月29日 4:09
    モデレータ

すべての返信

  • データが無くてもエラーは発生しませんが、どのようなエラーなのでしょうか? ひょっとしてmdb自体が無いということなのでしょうか?


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年7月29日 2:50
    モデレータ
  • 抽出条件でデータ型が一致しません。 というエラーがでます

    コードは

            SQLCm.CommandText = "SELECT 名前 FROM 名簿 WHERE クラス = '" & x & "' and 番号 = '" & y & "'"
           
        Cn.Open()
            TextBox1.Text = SQLCm.ExecuteScalar
            Cn.Close()

    です

    エラーは、TextBox1.Text = SQLCm.ExecuteScalar この部分ででます。
    2009年7月29日 3:34
  • xとyの値を確認してみて下さい。例えばyは番号でなければならないのに文字が入っていたりしませんか? もしくはyを「'」で囲む必要がないのかもしれません。
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク keisan115 2009年7月29日 4:40
    2009年7月29日 4:09
    モデレータ
  • yの「’」を消したらエラーが消えました!
    アドバイスありがとうございました!!


    また投稿するかもしれないですけどよろしければそのときもよろしくお願いします。

    2009年7月29日 4:39
  • ExecuteSalarはデータが取れないときはNullを返しますので、それをそのままTextBox1.Textに入れたら実行時エラーが発生すると思います。
    集計値(例えば、COUNT(*)みたいに)を取得する場合以外は、SqlDataReaderを使った方が良いのではないでしょうか?


    http://blogs.wankuma.com/hatsune/
    2009年7月29日 6:38
  • 返信遅くなりました。

    自分たちじゃよくわからなかったのでいろいろと探してみて比べてみてからきめます。
    わざわざアドバイスありがとうございました。いい作品ができるようにがんばっていきます。

    2009年7月30日 1:21