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

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

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

Re[18]: データ連結について


(過去ログ 46 を表示中)

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

■24516 / inTopicNo.1)  データ連結について
  
□投稿者/ ぽっち (45回)-(2008/09/03(Wed) 18:14:36)

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

こんにちは、いつもお世話になっております。
現在、データ連結において困っているのですが、誰かアドバイス、ご教授下さい。

開発環境は、WindowsXP
使用言語は、Asp.net,C#

になります。

下記ソースは一部ですが、まず、「編集」「新規作成」かなどモードを判断し、
モード毎でスイッチで処理の仕方を変えています。
sessiondata.Report.Group.Add(sessiondata.GroupForEdit);の部分で次の画面(遷移先)にあるグリッドにデータバインドを
させる準備をしているのですが、sessiondata.GroupForEditの中にあるデータより前に、“<指定>”という物を付けて
データバインドさせたいのです。

switch (sessiondata.OperationMode.Value)
{
case OperationMode.Create:
// ---新規作成モード : 追加する
sessiondata.Report.Group.Add(sessiondata.GroupForEdit);
break;
case OperationMode.Edit:
// ---編集モード : 更新する
sessiondata.Report.Group[sessiondata.GroupIndex.Value] =sessiondata.GroupForEdit;
break;
}

つまり結果としてデータバインドされると以下のようになります。

(例)
<指定>×○株式会社グループ

という風にしたいのです。

どなたかお手数ではありますが、ご教授くださいますようお願い致します。



引用返信 編集キー/
■24518 / inTopicNo.2)  Re[1]: データ連結について
□投稿者/ ネタ好き未記入 (81回)-(2008/09/03(Wed) 18:28:32)
No24516 (ぽっち さん) に返信
データを射影(SELECT)したタイミングでデータを補足して、任意のWebパーツに表示させればいいと思います。
引用返信 編集キー/
■24524 / inTopicNo.3)  Re[2]: データ連結について
□投稿者/ ぽっち (46回)-(2008/09/03(Wed) 18:51:22)
No24518 (ネタ好き未記入 さん) に返信
> ■No24516 (ぽっち さん) に返信
> データを射影(SELECT)したタイミングでデータを補足して、任意のWebパーツに表示させればいいと思います。

という事は、DB項目の追加になってしまうのでは・・・と思うのですが。私の勘違いでしょうか??
引用返信 編集キー/
■24525 / inTopicNo.4)  Re[3]: データ連結について
□投稿者/ ネタ好き未記入 (82回)-(2008/09/03(Wed) 18:57:33)
No24524 (ぽっち さん) に返信
> ■No24518 (ネタ好き未記入 さん) に返信
>>■No24516 (ぽっち さん) に返信
>>データを射影(SELECT)したタイミングでデータを補足して、任意のWebパーツに表示させればいいと思います。
>
> という事は、DB項目の追加になってしまうのでは・・・と思うのですが。私の勘違いでしょうか??

射影処理はDBの基本ですから、ちゃんとDB設計していれば多分列の追加は必要ないと思います。
引用返信 編集キー/
■24526 / inTopicNo.5)  Re[4]: データ連結について
□投稿者/ ぽっち (48回)-(2008/09/03(Wed) 19:01:59)
No24525 (ネタ好き未記入 さん) に返信
> ■No24524 (ぽっち さん) に返信
>>■No24518 (ネタ好き未記入 さん) に返信
> >>■No24516 (ぽっち さん) に返信
> >>データを射影(SELECT)したタイミングでデータを補足して、任意のWebパーツに表示させればいいと思います。
>>
>>という事は、DB項目の追加になってしまうのでは・・・と思うのですが。私の勘違いでしょうか??
>
> 射影処理はDBの基本ですから、ちゃんとDB設計していれば多分列の追加は必要ないと思います。

早くのレス助かります。
大変申し訳ないのですが、それだとDBの仕様変更になるのでそれは不可です。
ほかに方法ってないでしょうか・・・?
引用返信 編集キー/
■24530 / inTopicNo.6)  Re[5]: データ連結について
□投稿者/ ネタ好き未記入 (84回)-(2008/09/03(Wed) 19:35:43)
No24526 (ぽっち さん) に返信
テーブルが提示されていないのでわかりませんが、必要な情報がデータベース内にないとすれば確実に設計ミスだと思います。
引用返信 編集キー/
■24535 / inTopicNo.7)  Re[6]: データ連結について
□投稿者/ ロック (82回)-(2008/09/03(Wed) 19:59:21)
なんか、良く分かりませんが

単純に
SELECT '<指定>'+name FROM table1
って事?

#でも、フィールド名が名無しになるから
#SELECT '<指定>'+name AS name FROM table1

しかし、これだと対象フィールドのデータ全てに<指定>が付加されて
しまうから、その為の対応を模索中?
であれば、バインドする前にDataTableの中のデータを1件ずつ見て・・・とか?

引用返信 編集キー/
■24537 / inTopicNo.8)  Re[7]: データ連結について
□投稿者/ ネタ好き未記入 (87回)-(2008/09/03(Wed) 20:04:20)
No24535 (ロック さん) に返信
私も正直言ってよくわかりません。
おそらく質問主は、結合処理に関する処理で迷っているか、コントールで表示する部分で困っているのだと思っています。
引用返信 編集キー/
■24555 / inTopicNo.9)  Re[8]: データ連結について
□投稿者/ ぽっち (49回)-(2008/09/04(Thu) 09:08:15)
No24537 (ネタ好き未記入 さん) に返信
> ■No24535 (ロック さん) に返信
> 私も正直言ってよくわかりません。
> おそらく質問主は、結合処理に関する処理で迷っているか、コントールで表示する部分で困っているのだと思っています。

お二方には、回答誠に助かります、有難うございます。

質問の仕方が不明瞭で申し訳ありません。
設計ミスではないと思いますが・・・ハッキリ言えないので。


因みにDBは、
No(主キー)
名称
詳細No
グループ1
グループ2
グループ3
という形になっております。遷移前の画面で選んだグループとNoをデータベースで比較し、一致したNoのグループの名称が、射影されて出てくる仕組みです。

そこに、射影されて抽出された「名称」を遷移先の画面でデータバインドさせ、上でも記載したような(例)の形にして出したいという事です。


DB結合というジャンルではないし・・・どういえばよいのか分からないのですが・・・。
射影したデータ結果をデータバインドする前に「指定」という言葉を結合させたいのです。
引用返信 編集キー/
■24556 / inTopicNo.10)  Re[9]: データ連結について
□投稿者/ ネタ好き未記入 (91回)-(2008/09/04(Thu) 09:20:56)
No24555 (ぽっち さん) に返信
その条件ならばデータバインドする直前に、DataRowから取り出した名前+指定をラベルなどに表示すればいいと思います。


引用返信 編集キー/
■24561 / inTopicNo.11)  Re[10]: データ連結について
□投稿者/ ロック (83回)-(2008/09/04(Thu) 09:40:35)
って、事はSELECT文で
SELECT グループ名称 FROM テーブル名 WHERE なんたら〜

となっている部分を単純に
SELECT '<指定>'+グループ名称 FROM テーブル名 WHERE なんたら〜
では、駄目なんですか?

SQL Serverですよね? +で文字連結できるので試してみては?
それで問題が無ければ、たぶん一番簡単
#昨日はここで、<指定>を付加するには条件があってその条件がテーブルに無い?
#とか想像してました。

引用返信 編集キー/
■24568 / inTopicNo.12)  Re[11]: データ連結について
□投稿者/ ぽっち (50回)-(2008/09/04(Thu) 11:04:40)
No24556 (ネタ好き未記入 さん) に返信
No24561 (ロック さん) に返信
> となっている部分を単純に
> SELECT '<指定>'+グループ名称 FROM テーブル名 WHERE なんたら〜
> では、駄目なんですか?

お二方のアドバイス助かります。
今、検証してみたのですが

StringBuilder query = new StringBuilder();
query.Append("SELECT ");
query.Append("'<指定>' + ");〜・・・

でやってみたら、デバックは通ったのですが、肝心の名前まで出ない状態になってのバインドが出てしまいました・・・。
なんか色々芋づるのように他にも影響してしまってました。

もう少し考えてみます。
引用返信 編集キー/
■24570 / inTopicNo.13)  Re[12]: データ連結について
□投稿者/ みきぬ (65回)-(2008/09/04(Thu) 11:39:03)
> SELECT '<指定>'+グループ名称 FROM テーブル名 WHERE なんたら〜

SELECT '<指定>'+グループ名称 AS グループ名称 FROM テーブル名 WHERE なんたら〜

のように、列名を決めてあげないとだめかな。
引用返信 編集キー/
■24588 / inTopicNo.14)  Re[13]: データ連結について
□投稿者/ ぽっち (51回)-(2008/09/04(Thu) 16:27:19)
No24570 (みきぬ さん) に返信
>>SELECT '<指定>'+グループ名称 FROM テーブル名 WHERE なんたら〜
>
> SELECT '<指定>'+グループ名称 AS グループ名称 FROM テーブル名 WHERE なんたら〜
>
> のように、列名を決めてあげないとだめかな。

みきぬさんアドバイス有難うございます。
下記のようにしてみましたが、上記記述したような症状で変わりませんでした・・・。
どうもこう書くと、デバックで確認したのですが名前を取得出来てないみたいです。


StringBuilder query = new StringBuilder();
query.Append("SELECT ");
query.Append("GroupNo, ");
query.Append("'<指定>' + ");
query.Append("GroupName ");
query.Append("as グループ名称, ");
query.Append("Explanation ");
query.AppendFormat("FROM {0} ", TableName.GTable);
query.AppendFormat("WHERE DeleteFlag = {0} ", DBValue.False);
query.AppendFormat("AND GroupNo = {0}", iGroupNo);
引用返信 編集キー/
■24589 / inTopicNo.15)  Re[14]: データ連結について
□投稿者/ ロック (85回)-(2008/09/04(Thu) 16:41:52)
>query.Append("'<指定>' + ");
>query.Append("GroupName ");
>query.Append("as グループ名称, ");

query.Append("'<指定>' + GroupName as GroupName, "); // 1行にまとめました。
ですね。

デバッグよりも、SQL Server Management StudioでSQLの結果を確認してみる
ことをお勧めします。
EXPRESS版もあるので、どのバージョンでも確認可能です。
ついでに「AS」って何? も


みきぬさん、フォローありがとうございます。m(__)m
引用返信 編集キー/
■24591 / inTopicNo.16)  Re[15]: データ連結について
□投稿者/ ぽっち (52回)-(2008/09/04(Thu) 16:49:29)
No24589 (ロック さん) に返信
> >query.Append("'<指定>' + ");
> >query.Append("GroupName ");
> >query.Append("as グループ名称, ");
> を
> query.Append("'<指定>' + GroupName as GroupName, "); // 1行にまとめました。
> ですね。
>
> デバッグよりも、SQL Server Management StudioでSQLの結果を確認してみる
> ことをお勧めします。


ロックさん、アドバイス、回答有難うございます。
おかげ様で上記のソース(1行に直す)と表示されました!!
バラバラって駄目なんですね・・・SQL。すごく勉強になりました。

長い間お付き合いくださったネタ好き未記入さん、ロックさん、みきぬさんには、本当に感謝致します。
有難うございました。



解決済み
引用返信 編集キー/
■24592 / inTopicNo.17)  Re[16]: データ連結について
□投稿者/ みきぬ (67回)-(2008/09/04(Thu) 16:57:35)
No24591 (ぽっち さん) に返信
> おかげ様で上記のソース(1行に直す)と表示されました!!
> バラバラって駄目なんですね・・・SQL。すごく勉強になりました。
>
いや、たぶんそれはまったく関係なくて(Appendで連結してるし)

× グループ名称
○ GroupName

ってだけでわないかと。

解決済み
引用返信 編集キー/
■24593 / inTopicNo.18)  Re[17]: データ連結について
□投稿者/ ロック (86回)-(2008/09/04(Thu) 17:00:46)
え、いやバラバラが駄目なんじゃなくて

「GroupName」だけ指定するとフィールド名はGroupNameで返ってきますが
「'<指定>' + GroupName」で指定するとフィールド名は別名になってしまいます
なので、
「'<指定>' + GroupName as GroupName」と「AS なんたら〜」と入れると
フィールド名をなんたら〜の名称に置き換える事ができます。

つまり、ここではGroupNameに<指定>を付加してもフィールド名がGroupNameの
ままで元の処理に影響が出ないようにしているわけです。


解決済み
引用返信 編集キー/
■24594 / inTopicNo.19)  Re[18]: データ連結について
□投稿者/ ぽっち (54回)-(2008/09/04(Thu) 17:21:34)
No24592 (みきぬ さん) に返信
No24593 (ロック さん) に返信
> え、いやバラバラが駄目なんじゃなくて
>
> 「GroupName」だけ指定するとフィールド名はGroupNameで返ってきますが
> 「'<指定>' + GroupName」で指定するとフィールド名は別名になってしまいます
> なので、
> 「'<指定>' + GroupName as GroupName」と「AS なんたら〜」と入れると
> フィールド名をなんたら〜の名称に置き換える事ができます。
>
> つまり、ここではGroupNameに<指定>を付加してもフィールド名がGroupNameの
> ままで元の処理に影響が出ないようにしているわけです。
>
>

なるほど・・・さっきバラバラにして同じようにしたら通りました。
asの使い方は理解していたのですが、ご説明感謝致します。
本当にありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -