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

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

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

No.23850 の関連記事表示

<< 0 >>
■23850  データテーブルの中身のチェック
□投稿者/ ぽっち -(2008/08/22(Fri) 16:04:46)

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

    こんにちは。いつもお世話になっております。

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


    そこでAというデータベースにあるデータを取得してきて、Bというデータベースにデータを格納するSQL文を書いているのですが、
    DataTable型でデータを取得してきて、Bのデータベースにデータを書き込むときに、ソースの一部になりますが・・・
    下記のようにして、取得してきたデータの中身を確認し、もし中身が無いようなら「NULL」を代入させ、その後SQL文を発行させる
    ようにしたいのですが、

    【ソース】

    //取得したデータの中身チェック(なければ、Nullを代入)
    for(int i=1;i<=7;i++)
    {
    if (dt[0][i] == null)←
     {
    dt[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();


    上記ソースをビルドしようとすると、

    「角かっこ [] 付きインデックスを 'System.Data.DataTable' 型の式に適用することはできません。」

    と言われて「←」で書いた部分の所を怒られちゃいます。
    この書き方がどこがいけないのか分からず困惑しております。

    もし判断するならもっと賢い方法があるのでしょうか?
    どなたかご教授お手数ではございますが、お願い致します。
親記事 /過去ログ44より / 関連記事表示
削除チェック/

■23851  Re[1]: データテーブルの中身のチェック
□投稿者/ ネタ好き未記入 -(2008/08/22(Fri) 16:12:01)
    2008/08/22(Fri) 16:13:01 編集(投稿者)

    No23850 (ぽっち さん) に返信
    先ずは・・・

    Aというデータベースにあるデータを取得するSQL文
    Bというデータベースにデータを格納するSQL文

    を考える事から始めるといいと思います。
    次に、SqlParameterとSqlCommandとSqlDataAdapterとDataTableを調べるとよいと思います。

    追記
    Null値の扱いについても調べたらいいと思います。
記事No.23850 のレス /過去ログ44より / 関連記事表示
削除チェック/

■23852  Re[2]: データテーブルの中身のチェック
□投稿者/ ぽっち -(2008/08/22(Fri) 16:19:27)
    2008/08/22(Fri) 16:21:57 編集(投稿者)
    No23851 (ネタ好き未記入 さん) に返信
    > 2008/08/22(Fri) 16:13:01 編集(投稿者)
    >
    > ■No23850 (ぽっち さん) に返信
    > 先ずは・・・
    >
    > Aというデータベースにあるデータを取得するSQL文
    > Bというデータベースにデータを格納するSQL文
    >
    > を考える事から始めるといいと思います。
    > 次に、SqlParameterとSqlCommandとSqlDataAdapterとDataTableを調べるとよいと思います。
    >
    > 追記
    > Null値の扱いについても調べたらいいと思います。

    返信誠にありがとうございます。

    まず、ちょっとタイプミスで

    > for(int i=1;i<=7;i++)
    > {
    > if (dt[0][i] == null)←
    >  {
    > dt[0][i] = null;←
    > }
    > }

    の部分でdt.Rows[0][i]でした。Rows書き忘れてました・・・。
    ここが原因だったようです。うっかりミス過ぎますね・・・。

    助言有難うございました!!
記事No.23850 のレス / END /過去ログ44より / 関連記事表示
削除チェック/

■23854  Re[3]: データテーブルの中身のチェック
□投稿者/ ネタ好き未記入 -(2008/08/22(Fri) 16:22:10)
    No23852 (ぽっち さん) に返信
    調べた結果どうしてもわからなかったら「○●がわかりません」と言えばみんな教えてくれますし、その方が求める答えが得られると思います。ファイト!
記事No.23850 のレス /過去ログ44より / 関連記事表示
削除チェック/

■23858  Re[3]: データテーブルの中身のチェック
□投稿者/ こあら -(2008/08/22(Fri) 16:37:31)
    > の部分でdt.Rows[0][i]でした。Rows書き忘れてました・・・。
    > ここが原因だったようです。うっかりミス過ぎますね・・・。

    せっかくコンパイルエラーになったのですから、うっかりミスで済ませずエラー内容を理解してみると・・・
記事No.23850 のレス / END /過去ログ44より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -