C#, VB.NETでウェブDBのメンテを実現する方法とは?

このQ&Aのポイント
  • C#およびVB.NETを使用してウェブDBのメンテナンスを行う方法を紹介します。質問の内容を要約しています。
  • C#, VB.NETを使ってウェブDBのメンテを実現する方法について解説します。ウェブアプリの作成やデータの登録方法などについて詳しく説明しています。
  • C#, VB.NETを使ってウェブDBのメンテを行う際の注意点や設定方法について解説します。ウェブアプリやローカルプログラムからのデータベースへのアクセス方法を詳しく説明しています。
回答を見る
  • ベストアンサー

C#,VB.NETからのウェブDBのメンテは

社内のとある装置の測定値を関係者みんなが閲覧できるよう、 インターネットで公開するためのウェブアプリを作成しようと思います。 ウェブアプリは、PHP + MySQL を考えています。 まったく素人で、勉強しつつ作成していくことになります。 そこで質問なのですが、 1. 測定機器から値を収集してウェブサーバ上のDBに登録する処理を、 C#のプログラムで作成しようと思いますが、 ローカルで動作するC#のプログラムからウェブDBへの登録は可能でしょうか? 2. 1.が可能な場合、どのくらいのレスポンスになるものでしょう? もちろんデータ量やPCや回線の能力にもよると思いますが... 例えば、500バイト程度のレコードを3000件ほど定周期で登録したいのですが、 周期をなるべく短いものにしたいです。 数秒周期?十数秒周期?数十秒周期?数分周期? 大雑把に分かりませんでしょうか? 3. 運用に必要な情報(例えば、ユーザID,PW等)もウェブDBに登録したいのですが、 設定項目が多くウェブアプリではメンテしづらいのと、 既存VB.NETのプログラムがあるためこれを活かしたいということで、 ローカルのVB.NETのプログラムからウェブDBへの登録は可能でしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.5

こんにちは。 >C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。 その辺はなんでもいいと言ったら乱暴ですが、お好みで大丈夫だと思います。 私ならJSONで組むと思います。 >また、こういったレンタルサーバーのDBに、 >早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、 >やはり高負荷となるのでしょうか。 >これは、別のカテゴリーで質問を立てるか、 >そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。 個人的には負荷が高いかなと思います。 通信時間も入ると数秒の繰り返しでは、3000件のインサートが間に合わないかもしれません。 実際のところやってみないとわかりませんが。 もっと明るい人がいるかもしれませんので別の質問として聞いてみるのも手ですが、一番確実なのは業者に問合わせてください。 常にプロセスがCPUを食ってるとか、メモリの利用が高いと、強制的に止められてしまう可能性もありますので。

ogu-ne
質問者

お礼

何度もすみませんでした。 なるほどJSONですね。 少しかじって知っています。 これから設計のときにきちんと検討します。 やはりサーバーの負荷が一番気になるところです。 今はまだ、こういうことをしたい、程度の構想段階なもので、 具体的な業者の選定もなにもこれからなのですが、 予備知識を得るためにももう少し調べてみようと思います。 強制的に止められたりすると大変ですので、 扱うデータ量ももっとちゃんと見積った上で、 慎重に考えたいです。 この度は、どうもありがとうございました。 大変参考になりました。

その他の回答 (4)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 >なるほど、直接接続できないのですか。 DBが外部ネットワークからの参照を許可していれば大丈夫です。 >ウェブサーバーは、レンタルサーバーを利用するつもりです。 共有サーバの場合、大量のリクエストを行うと、ほかのユーザに迷惑がかかる場合もあります。 十分に検討してください。 >ちなみに、phpを介する場合、それはどのようなことをするのでしょうか? >ローカルで収集したデータをサーバーに送る仕組みと、 >そのデータをphpでどう扱うのか、あまりうまくイメージできません。 直接アクセス出来る場合は、C#のアプリでSQLを発行してデータを保存することが出来ます。 DBに直接接続できない場合は、対象のDBに接続できるphpを介すことになります。 phpを介すとは、SQLの発行をphpで行い、データの保存、取得を実行します。 例えばですが regist.php ← データ登録用 C#で作成したデータをregist.phpに対して投げます。 regist.phpではデータを受け取り、SQLを発行してデータベースへ登録します。 ようは、登録の部分の窓口をphpで作っておくということです。 DBにデータが入ってしまえば、phpで表示するページを作るもよし、同じような仕組みでデータを取得する窓口を作ってあげてWindowsアプリにて取得して表示するもよしです。

ogu-ne
質問者

補足

度々ありがとうございます。 よく分かりました。 少し調べてみたところ、外部アクセスを許可するサービスは、やはり料金が高いですね。 できれば普通の(?)レンタルサーバーのMySQLを使用したいものですが...。 C#とphpの連携も調べて見て、なんとなく分かりました。 DB登録後のphpでの抽出やhtml作成はイメージできます。 道筋がだいぶはっきりしてきました。 ありがとうございます。 厚かましくて申し訳ないのですが、 C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。 また、こういったレンタルサーバーのDBに、 早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、 やはり高負荷となるのでしょうか。 これは、別のカテゴリーで質問を立てるか、 そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。 ともにもしご存知でしたら、ご教授ください。 度々すみません。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.3

すみません、webDBの話でしたね。 ということで私の話は無視してください。

ogu-ne
質問者

お礼

早速書き込みをいただきまして、ありがとうございます。 今回は、ウェブサーバー上のDBのことでしたので、 すみませんでした。 ありがとうございました。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

単にdbの速度だけな半紙をするなら、私のチンケなテスト環境だと (8年位前のほとんどIOのないHPのサーバーにDB2のEE入れた ものに対して、同じくらい古いcore2マシンからネットワークは100M、 3段くらいカスケードしてあるがハブ間はメタルのギガ回線) 下記VB6プログラムで、500バイトのデータを3000件登録するのに、 およそ4秒かかりました。 Dim strdata As String Dim strsql As String strsql = "" For X = 1 To 50 strdata = strdata & "abcdefghij" Next X Con.Open "xxxxx" Debug.Print Now For X = 1 To 3000 strsql = "insert into t_test values (" & X & ",'" & strdata & "')" Con.Execute strsql Next X Debug.Print Now() 2013/10/30 17:33:32 2013/10/30 17:33:36 ネットワークの性能を上げれば多少早くなるとは思います。 まあ、データを集めて整理するのに、どの程度時間がかかるかの方が大きな問題かもしれません。 (が、このあたりはやってみないことにはなんともいえませんね。)  

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 1.可能です。 ただし、Webサーバがレンタルの場合、おそらく外部からDBへの接続は出来ないので(プランによるかもしれませんが) php等を介しての処理になると思います。 2.WebサーバがそのC#を動かす端末からどこの位置にあるかにもよると思います。 (自社管理のサーバなのかレンタルサーバを借りるのかetc.)  1.で述べたようにC#→php→mySQLだと直接mySQLに接続するより処理時間がかかるのは必至です。 こればかりは実際の環境でやってみて、チューニングするしかないと思います。 3.1.と同様、可能ですが方法に制限があるかもしれません。 どうせサーバ側の処理を介すならWebで作ってしまったほうが楽でしょうし。 (仲介するAPI的なものを作る必要がない)

ogu-ne
質問者

補足

ありがとうございます。 なるほど、直接接続できないのですか。 大変参考になりました。 例えば、ODBC接続のようなものがあって、 ウェブ上DBに簡単に接続できるものと考えていましたので。 ウェブサーバーは、レンタルサーバーを利用するつもりです。 いくつか運用をしたいと思っていまして、 その中にはWindowsのIISでイントラネットのようにしようと思っていたものもありますが。 ちなみに、phpを介する場合、それはどのようなことをするのでしょうか? ローカルで収集したデータをサーバーに送る仕組みと、 そのデータをphpでどう扱うのか、 あまりうまくイメージできません。 概要のようなものでもご存知でしたら、ご教授ください。

関連するQ&A

  • VB2008にてWEBアプリケーションのAPI作成

    VB2008にてWEBアプリケーションのAPI作成 環境 VB2008 SQLServer2005 ネットや本など色々見たのですがどうしていいのか分からず困っています。 WEB画面要求を受けて結果を返す処理を作成しようとしているのですが 参考になるような情報はないでしょうか? WEB画面の方の処理はPHPにて作成されています。 PHPにて直接DBへアクセスしないでこのAPIにてDB関連の処理を行いたいのです。 WEBからはJSON形式にて登録内容などが送られてきます。 アドバイスよろしくお願いします。

  • VB.NETとC#はどのぐらい違いますか?

    今まで、VB.NET2003でWebアプリケーションの開発をしてきたのですが、客先が代わり、C#でWebアプリケーションの開発することになりそうなのですが、VB.NETとC#でどのぐらいちがうものなのでしょうか? 基本的にASP.NETであることにかわりがないので、 文法上の違いレベルなのかなーとおもっているなのですが、どうでしょうか?

  • VBのプログラムでネット上のDBにアクセスする

    こんにちは。 私は勉強のためにVisualBasic2008とAccess2010を使ってローカルで動くプログラムを製作しています。 おいおいは、データベースをネットワーク上に配置してアクセスしたいのですが、 そのためにはどういう方法をとるべきなのでしょうか。 手法や参考になるHP、書籍などを教えてください。 なお、できるだけ書いているコードやソフトは流用したいと思っています。 DBについては作り直してもいいのですが、VBのプログラムは修正があまり生じないような手法をお願いします。

  • .netでのDB連携

    ASP.netのVB.NETを勉強していて簡単なシステムを作成しています。 簡単な帳票にデータを登録したり編集、削除したりするものです。 DB接続はできたのですが、DBからデータを呼び出す表示、イベントによるDBにデータを登録、そしてDBのデータを編集、削除する方法がみえてきません。 SQLのクエリを使用して行うのでしょうか? SELECT 呼び出す列 FROMテーブル  これだけではよびだせませんでした。 すいませんが、知恵をかしてください。 DB接続を行った後、

  • VBAからのVB.NETかC#

    本日エクセルVBAエキスパートのスタンダードを取得いたしました。 仕事で半年ほどVBAをチョコチョコ使う機会があったので、 最初のうちはWEBで調べてコードを切り張りして 簡単なツールを作っておりました。 それで9月のはじめに折角だし資格を取ろうと思い 現在に至っております。 転職を考えており、もう少しプログラムを勉強しようと思っています。 次はVB.NETかC#をと考えているんですが、 どちらがいいでしょうか。 個人的な目標としてはWINDOWSのPC上でGUIで動く ヤフオクの出品ツールが作れるぐらいを考えています。 それでご相談なのですが、VBとVB.NETはかなり違うとのことですが VBAを学んでいるとC#に比べVB.NETは多少は習得し易いでしょうか。 VBAが習得の上で何のアドバンテージにもならないのであれば、 人気のC#にしようかと思っています。 ちなみに今の職場にいる限りVBA以外のプログラムをする機会はありません。 恐れ入りますが回答をお願いいたします。

  • WEBブラウザからVBへのデータ送信方法

    WEBブラウザ上の値をローカルにインストールしてあるプログラムに渡したいのですが、方法が分からず困っています。 WEB上はPHPで作成しており、ローカルはVB2005ExpressEditionで作成しています。 渡したいデータは数字12桁程度のものです。 WEBサーバは外部にあります。

  • VB.NETかC#かで悩んでます。

    こんにちは。 私は最近プログラムの勉強を始めようと思っているのですが、VB.NETかC#のどちらにすべきかで悩んでいます。 作成したいものはメモ帳やゲーム、簡単なペイントソフトなどの、ベクターや窓の杜で配布されているようなアプリケーションです。 自分の中の「こんなのあったら……」「こういうの便利そうだなぁ」というのを形にしたいんです。 すでにPCの中に【VisualStudio2012 Express For Desktop】もインストール済みで準備はできているんですが、一番重要な使用言語が決まっておりません。 調べたところ自分ではVB.NETかC#がいいなと思うのですが、他にも適切な言語があれば教えてください。 また、私は初心者のため、入門者におすすめな本なども教えていただけると嬉しいです。 よろしくお願いします。 (PC環境はWindows7 64bitです)

  • VB.NET DataGridView Web連携

    VB.NETの開発でアプリの実行端末にDB接続の環境がない可能性を考えてWebアプリとの連携を考えています VB.NETで開発したフォームのDataGridViewに表示するデータをWebアプリ(ASP、サーブレットなど)と連携するためにはどうすれば良いですか? 考えているのは単純にURLにパラメータを付けてReqeustして結果をカンマ区切りなどで出力したデータをResponseし、一行ずつ分解してDataGridViewの項目に設定していけばいいのかな?って思っています。 他に良いやり方などあれば教えて頂きたいです。

  • なぜ、VBよりC#を勧めるのですか?

    プログラミング初心者やBASIC経験者に対して、C#を勧める人が結構いるみたいです。 C#よりVB2005を勧めるといった人はほとんど見かけません。 BASIC系の言語を知っていればVBScriptやVBAなどの理解も早いと思いますし、VB.NET(2005含む)の方が参考書や参考Webページが多いように思われます(初心者向けの物は特に多いのでは…) VB6の頃はオブジェクト指向の機能が不完全でしたが、VB.NETになってからは、完全なオブジェクト指向言語となったように聞いていますが… C#の方が洗練されているとか美しいとかいった事を聞きますが、その程度の事は所詮好みの問題ではないでしょうか 生産性や開発コスト、プログラムの管理といった具体的な観点でC#を勧める理由が知りたいです。

  • VB2005でDB接続

    勉強で、VB2005でAccessDB接続するプログラムを作成しています。 目的は商品コードを入力すると、DBに売上げが計上され、今日の売上げ内訳一覧を表示する、ごくシンプルな練習用プログラムです。 基本的なコーディングは大丈夫ですが、教科書では非接続型・デザイナでのせてあり、VBサンプル集では接続型・非デザイナで、ややこしく混乱して、理解できずに困っています。何がどう違うんでしょうか。お願いいたします。

専門家に質問してみよう