動的に数式を計算する方法を探しています。
SQLServerのエンジンを使うのが簡単そうです。
ADO.NETでSELCECT文を投げることにより、数式を計算することは可能です。
SELECT 1+2
質問は、変数を含んだ数式をSELECT文で計算することは出来るでしょうか?
int a = 1;//変数
int b = 2;//変数
string shiki = "a + b"; //変数を含んだ数式
で3を求めたいです。
Windows2000Server
MSDE2000A
VS.NET2003(Webアプリ/C#)
No.1ベストアンサー
- 回答日時:
>動的に数式を計算する方法を探しています。
でしたら、スクリプトエンジンを使うのが楽かと。
msscript.ocxを参照設定して使います。
VBScriptとかJScriptを文字列として渡すことで実行できます。
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/2004 …
の真ん中くらいにVB.NETからJScriptを呼び出しています。
詳しくはocxのヘルプを。
で、こちらだと、
>質問は、変数を含んだ数式をSELECT文で計算することは出>来るでしょうか?
>
>int a = 1; //変数
>int b = 2; //変数
>string shiki = "a + b"; //変数を含んだ数式
>
>で3を求めたいです。
変数に入っている値をどうするかがポイントになります。
方法としては、
a,bのフィールドを持つテーブルを作成して値をinsertしておく必要があるんじゃないかと。
ADO.NETのパラメータとして渡すにしても、そのままの書式じゃだめなはずなんで。
#本物のテーブルじゃなくてもかまわないですけど。
回答ありがとうございます。
> msscript.ocx
凄い!初めて知りました。いろいろ遊べそうですね。
しかし、今回は .NETで完結したいので採用するのは見送ります。
> a,bのフィールドを持つテーブルを作成して値をinsertしておく必要があるんじゃないかと。
エラーになるけど、こんな感じのselect文で出来るかなと期待したのですが..
select 1 as a, 2 as b, a + b as result
プログラム側で変数を置換する方向で考えます。
とりあえず、
shiki.Replace("a", a.ToString()).Replace("b", b.ToString())
でいいけど、実戦では正規表現で置換する必要かも。
No.3
- 回答日時:
>select a + b from (select 1 as a, 2 as b)
>select a from (select 1 as a)
>
>はNGです。
うーん、残念。
あとはXMLなんかでテーブル作っちゃうかな。
自己解決しました。
http://www.microsoft.com/japan/msdn/library/defa …
の例Aをヒントに
declate @a int,@b int;set @a=1;set @b=2;select @a+@b
No.2
- 回答日時:
>select 1 as a, 2 as b, a + b as result
私はADO.NETがよくわからないのですが、SELECT文のfrom句って要らないんですか?もしくはつけてもいいんですか?
両方OKなんでしたら
select a + b from (select 1 as a, 2 as b)
なんてのはどうなんでしょう?
この回答への補足
クエリアナライザで確認してみました。
select 1+2
select 1 as a, 2 as b
はOKです。
select a + b from (select 1 as a, 2 as b)
select a from (select 1 as a)
はNGです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 隣のセルが空白以外の場...
-
ファイルメーカープロ8で生年月...
-
【ACCESS】未定義関数が発生。...
-
CFLOOPで計算させたいのですが
-
コンピューターで2進法が採用...
-
ファイルメーカーで学年を表示...
-
生まれてくる子の性別の見分け方
-
EXCEL 年齢の自動計算
-
VBAでエクセルシートを更新...
-
「24日の0時」って・・・
-
エクセルのチェックボックスを...
-
エクセルで最高値、最低値の日...
-
日付の大小の表現
-
excelで、セル内に文字が入力さ...
-
エクセル マクロ 名前を付けて...
-
Accessで文字列の長さによって...
-
エクセルの列が左右逆に・・・・
-
「時間」、「期日」、「日付」...
-
エクセルで数字から名前に変...
-
差し込み印刷に当日の日付が入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンピューターで2進法が採用...
-
Excel 隣のセルが空白以外の場...
-
【ACCESS】未定義関数が発生。...
-
アクセスである時点での年齢を...
-
エクセルで四捨五入ではなく、5...
-
ACCESS で深夜計算
-
ファイルメーカーで時間の表示...
-
ファイルメーカーで小数点以下...
-
ACCESSでの時間外計算方法
-
エクセルでeのマイナス乗の計算...
-
選択クエリを開けない
-
計算結果をCASE WHENで判断した...
-
アクセスについて
-
ファイルメーカーPro7の入力値...
-
ファイルメーカープロ8で生年月...
-
生年月日から年齢を計算したい。
-
ファイルメーカーで正方形の対...
-
生年月日から年齢を取得する方法
-
Accessで子供の学年齢を求めた...
-
エクセルについて
おすすめ情報