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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■6824  Re[5]: スレッドの作成
□投稿者/ 馬吉 -(2007/08/24(Fri) 13:15:56)
    ありがとうございました。
記事No.6787 のレス / END /過去ログ17より / 関連記事表示
削除チェック/

■23863  SQL文にNULLが入らない。
□投稿者/ ぽっち -(2008/08/22(Fri) 17:14:55)

    分類:[ASP.NET (C#)] 

    こんにちは。お世話になっております。
    先ほどもご質問させて頂いてたのですが・・・

    現在、
    開発環境:WindowsXP
    使用言語:ASP.NET、C#
    でデータベース(SQL-SERVER)を使ったシステムを作っております。


    先ほどは、Rowsが書き忘れたことによるミスで無事ビルドは成功したのですが、
    肝心のSQL文が通ってくれてなくて困っております。
    どうもこの下のようなfor文でDataTable型の中身がNULLだったら「NULL」を入れるとしている処理を上手く通らずいるようで
    デバックしてもひとつもif文の中に入ってくれなかったので・・・。


    【ソース】
    //取得したデータの中身チェック(なければ、Nullを代入)
    for(int i=1;i<=7;i++)
    {
    if (dt.Rows[0][i] == null)←
     {
    dt.Rows[0][i] = null;←
    }
    }

    query.AppendFormat("INSERT INTO {0} ", T.ListDetailTable);
    query.Append("(No, Vno, INo, CD, SCD, ");
    query.Append("TCD, PCD, LISTCD, FrindCD) ");
    query.AppendFormat("VALUES ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8})",
    QUERYVARIABLE_NO,
    vDetail.Vno + 1,
    vDetail.INo,
    dt.Rows[0][1],
    dt.Rows[0][2],
    dt.Rows[0][3],
    dt.Rows[0][4],
    dt.Rows[0][5],
    dt.Rows[0][6]);

    return query.ToString();


    結果的にreturnで返されるSQL文が、

    【返されるSQL文】
    INSERT INTO ListDetailTable (No, Vno, INo, CD, SCD, TCD, PCD, LISTCD, FrindCD) VALUES (@Num, 2, 1, 0001, 04, , , 001, )

    になってしまい、空白の部分に「NULL」が入ってない状態で返して、エラーが起こってしまいます。


    【理想的なSQL文】
    INSERT INTO ListDetailTable (No, Vno, INo, CD, SCD, TCD, PCD, LISTCD, FrindCD) VALUES (@Num, 2, 1, 0001, 04, NULL, NULL, 001, NULL)

    なのですが、どうやって「NULL」を入れれば良いのでしょうか・・・?
    いろいろToStringやEqualsでのif文判断もしたのですが、上手くいかずに困っております。


    度重ねで誠に申し訳ないのですが、誰かご教授お願い致します。
親記事 /過去ログ45より / 関連記事表示
削除チェック/

■58033  Re[3]: 文字を数値に変換する方法
□投稿者/ マサヤ -(2011/03/24(Thu) 10:09:13)
    解決済みのところスミマセン。
    char c = '5';
    とありますが、これは絶対に数値に変換できるものが入ってくるのでしょうか?
    TryParseとかありますので参考までに。
記事No.58012 のレス / END /過去ログ97より / 関連記事表示
削除チェック/

■89987  Re[4]: クラス内にFunctionを作る方法
□投稿者/ 魔界の仮面弁士 -(2019/01/28(Mon) 16:27:21)
    No89979 (かめかめ さん) に返信
    >> Return {L, R, T, B}.All(Function(value) Math.Abs(value - 0F) < Single.Epsilon)
    > Return {L, R, T, B}.All(Function(value) value = 0F)
    > というようにしないのはなぜなのですか?
    
    既にキングダム さん本人から訂正が入っているので蛇足ではありますが、
    No89978 の判定式のまま処理してしまうと、結果的には
    上記 No89979 の判定式と同じ意味になってしまいます。
    (許容値は Single.Epsilon より大きな値でないといけません)
    
    
    ちなみに、「メモリ上完全にゼロな Single 値」であることを保証したい場合には、
    『.All(Function(value) value = 0F)』ではなく、
    『.SelectMany(AddressOf BitConverter.GetBytes).All(Function(b) b = 0)』などとします。
    ※Single 値が「0.0F」ではなく「-0.0F」だった場合に、異なる結果となります。
    
    
    
    ■No89982 (キングダム さん) に返信
    > 有効な最小値にはマシンイプシロンがよく使われるので
    > Math.Abs(value - 0F) < Single.Epsilon
    
    ちなみに ARM プロセッサの場合は、Single.Epsilon が 0.0 と等しくなってしまうそうな…。
    https://docs.microsoft.com/en-us/dotnet/api/system.single.epsilon
    
    
    
    > 単精度浮動小数点数のマシンイプシロンは2^-23なので
    > Math.Abs(value - 0F) < 0.0000001192093F
    
    上記の右辺で使われている値は、「2 ^ -23 よりも大きな最小の Single 値」に相当する
    0.0000001192093037616359652020037174224853515625 な値ですね。有効桁数の問題から
    0.0000001192093F というリテラル表記になりますけど。
    (Single 値の有効桁数は 10進数換算で 7.2247 桁分しかないため)
    
    
    一方、「(1より大きい最小値)から 1 を引いた値」である「2 ^ -23」自体の値は、
    上記の右辺よりも「2 ^ -46」だけ少ない値となります。
    具体的には「0.00000011920928955078125」≒「0.00000011920929F」です。
記事No.89977 のレス /過去ログ155より / 関連記事表示
削除チェック/

■92895  Re[3]: マウスクリックとホイールを無効化する方法
□投稿者/ 774RR -(2019/11/06(Wed) 08:28:14)
    > ウインドウフォームの外観を変えずにマウス(とキーボード)の操作を無効化
    すると通常のユーザーは大いに戸惑うと思うのだけど。

    あれ?このアプリ死んでる!しょうがない、タスクマネージャで抹消するか。はお望みの動作?
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92896  Re[4]: マウスクリックとホイールを無効化する方法
□投稿者/ yapoo -(2019/11/06(Wed) 09:58:27)
    No92895 (774RR さん) に返信
    >>ウインドウフォームの外観を変えずにマウス(とキーボード)の操作を無効化
    > すると通常のユーザーは大いに戸惑うと思うのだけど。
    >
    > あれ?このアプリ死んでる!しょうがない、タスクマネージャで抹消するか。はお望みの動作?
    >

    カーソルを待機状態に変えてあるのでそこは問題ありません。
    Cursor = Cursors.WaitCursor
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■98918  Re[6]: UTF-8(BOM無し)のCSVファイルを読み書き
□投稿者/ 魔界の仮面弁士 -(2022/01/19(Wed) 10:40:29)
    No98917 (WebSurfer さん) に返信
    > エラーメッセージは、
    > ValueError: could not convert string to float:
    > だそうですが、後出ししないで一番最初の質問で書きましょう。それから、float: の
    > 後に変換しようとした文字列があるのではないですか?


    あるいは、本来は数値を出力しなければならない場所に、
    実際には何も出力されていない(空文字列)とか…ですかね。



    ■98913 (ゆい さん) に返信
    > 未知に近いUTF-8(BOM無し)に、てっきり起因があるのでは? とも思ってもしまったのです。

    それは BOM あり BOM なし 2 種類のファイルを使って検証すれば、すぐに分かる話ではないでしょうか?
    BOM の有無を調整する方法は、先に紹介した URL に書いてあります。

    仮に「BOM 無しを前提としている処理系」に BOM 有ファイルを渡した場合、
     (a) BOM を文字として読み取り、先頭に U+FEFF すなわち「幅ゼロの無改行空白文字」として読み込む。
     (b) BOM を自動的に切り取って処理してくれる。(BOM 有無を自動判定するタイプ)
    のいずれかになると思います。

    a の場合は、最初の行の最初の列に、不可視文字が一文字混入するという事です。


    > 先日教えてもいただいた「WriteLine → Write」での、
    > そのままでは改行がされないがため、安直にも「sr.WriteLine()」が為にも関わらず。

    その処理系では期待されている改行は LF ですか? CRLF ですか? あるいは CR ですか?

    現状は、CSV ということと、それが UTF-8(BOMなし) という点しか分からないので、
    仕様を出している担当者に、もっと突っ込んで確認した方が良いかも知れませんね。


    (1)ファイルの先頭にヘッダー行が含まれるの否か。
     常にヘッダーがあるパターン、常に無いパターン、あっても無くても良いパターン。

    (2)各レコードは可変長なのか固定長なのか。
     固定長 CSV の場合、文字数固定なのかバイト数固定なのかも重要です。

    (3)すべての行で列数が同一なのかどうか。また、その列数は幾つと定義されているのか。
     処理系によっては、行によって列数が異なる CSV なんてものもあります。

    (4)レコード区切りは LF 改行なのか CRLF 改行なのか CR 改行なのか。
     固定長 CSV の場合、稀に改行を一切含まないという特殊な CSV がありえます。

    (5)レコード区切りの改行がある場合、それは「レコードの末尾」に付与されるのか
     それとも「レコードとレコードの間」に付与されるのか。
     もしもレコード間改行という仕様だった場合、ファイル終端には改行が含まれません。

    (6)それぞれのデータを引用部(")で囲むのか否か。
     すべて引用符で囲む CSV もあれば、すべてのデータを囲まない CSV もあります。
     文字列は囲むが、数値は囲まない CSV なんてもあります。日付を # で囲む処理系もあり。

    (7)引用符で囲む CSV の場合、データ中に「カンマ」や「改行」が許可されるか否か。
     これらの特殊文字をデータに含む CSV は、ファイルの作成はさほど難しく無いものの
     ファイルの読み込み処理が複雑化する傾向にあります。
     Excel で生成した CSV の場合、データ内改行は LF 固定、レコード区切は CRLF だったりしますね。

    (8)引用符で囲む CSV の場合、データ中に「引用符」が許可されるか否か。
     半角「"」だけでなく、全角「“」や「”」も含めて禁止という CSV もあれば、
     データ内の引用符を許可する CSV もありますが。
     引用符が許可される場合、それはどのように出力されるのかも重要です。

    (9)データを含まないセルの出力仕様が決まっているか。
     たとえば、携帯電話番号を含む住所録な CSV データがあって、たとえば
      "田中A","07092895448","東京都"
     と出力されるような処理系において、携帯電話番号が無い場合の出力パターンとしては
      "田中B","","東京都"
      "田中C",,"東京都"
      "田中D",null,"東京都"
      "田中E",undefined,"東京都"
     などのパターンが考えられます。
     処理系によっては、田中B のパターンは「空文字列」として扱う(携帯電話が無い)ものとし、、
     田中C のパターンを「null」として扱う(携帯番号を持っているかどうか不明)ことで、
     両者を区別して使い分けていることがありました。
     (田中D や田中E のパターンは、話として聞いたことがあるだけで、実際に見たことは無いです)
記事No.98901 のレス /過去ログ172より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -