- PR -

DataSetとして取得したテーブルのフィールドの型を変更?

1
投稿者投稿内容
タオル
常連さん
会議室デビュー日: 2005/04/27
投稿数: 43
投稿日時: 2005-10-21 14:03
DataSetとして取得したテーブルのフィールドの型を
C#のソース上で変更する事は可能でしょうか?

現在、VS2003のC#、SQLSERVER2000で開発を始めました。
TrueDBGridを使用しているのですが、

各テーブルのデータを一つのDataSetとして受け取って、
そのDataSetをTrueDBGridに渡す事で
グリッド上に出力していました。

ただ、条件によりあるフィールドの値が
○○のレコードのみ該当する値に「"test"」を付け加えなければ
ならなくなりました。
つまり、
DataRow dr;
DataTable dt;
dt = dsTest.Tables[0];

for (int i = 0; i<dt.Rows.Count; i++)
{
dr = dt.Rows[i];

if(boolTest == true )
{
dr[5] += "test";
}
}
このような形です。dsTestがデータセットです。

ところが、dr[5]のフィールドの型はTINYINTなのでそのまま代入する事ができません。
該当する値に文字列を追加する方法はありますでしょうか?

dr[5]の値が例えば「テスト」の場合、
「テスト"test"」としたいのです。

低レベルなお話かもしれませんが、
何卒お知恵をお貸しください。

よろしくお願いいたします。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-10-21 15:51
引用:

タオルさんの書き込み (2005-10-21 14:03) より:

ところが、dr[5]のフィールドの型はTINYINTなのでそのまま代入する事ができません。
該当する値に文字列を追加する方法はありますでしょうか?

dr[5]の値が例えば「テスト」の場合、
「テスト"test"」としたいのです。


tinyint型ということは「テスト」は数字ってことですよね?
いずれにしてもSQLserverから抜いてくるときに、select文の中で文字型にキャストしちゃばいいんじゃないでしょうか?
タオル
常連さん
会議室デビュー日: 2005/04/27
投稿数: 43
投稿日時: 2005-10-24 14:18
trapemiyaさん、お返事ありがとうございます。
そしてまず、私の返信がとても遅くなった事をお詫びいたします。
申し訳ございませんでした。

おっしゃる通り、selectの際にcastして望む結果を得る事ができました。
まだまだ未熟でご迷惑をお掛けしまして大変申し訳ございません。

また何かございましたらその時は何卒よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)