TextBox のデータをファイルに保存

C# ASP.NET で、ボタンをクリックすると TextBox の DATA を取得して、ファイルに保存します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. ボタンをクリックすると TextBox の DATA を取得して、サーバー上にファイルとして保存します。
    Text Data をファイルに保存するだけならば、プログラムは至って簡単です。
  2. WebMatrix を起動して [ASP.NET ページ] のアイコンを選択して新しいページを作成します。
  3. デザイン画面に次のメッセージをタイプして下さい。
    TextBox にタイプされたデータをファイルに保存
    キー項目=値 の形式で save.txt に出力
  4. ツールボックスから二個の [TextBox] をデザインウインドウに貼り付けます。
    改行をして、二組目の [TextBox] をデザインウインドウに貼り付けます。
  5. [TextBox1] の Text を "KEY-1=" に、[TextBox2] の Text を "Text Data-1" に設定します。
    [TextBox3] の Text を "KEY-2=" に、[TextBox4] の Text を "Text Data-2" に設定します。
  6. ツールボックスから [Button] をデザインウインドウに貼り付けます。
    [Button1] の Text プロパティを "保存" に設定します。
  7. [Button1] をダブルクリックして、次のコードを書いて下さい。
    TextBox から TEXT を取得して、ファイルに保存するソースコードです。
        void Button1_Click(object sender, EventArgs e)
        {
            string file_name = "save.txt";
        
            StreamWriter writer = new StreamWriter(file_name, false, Encoding.GetEncoding("Shift_JIS"));
            writer.Write(TextBox1.Text);
            writer.WriteLine(TextBox2.Text);
            writer.Write(TextBox3.Text);
            writer.WriteLine(TextBox4.Text);
            writer.Close();
        }
        
  8. TEXT File を使うときは *.aspx の先頭で、次の Namespace を import して下さい。
        <%@ Page Language="C#" %>
        <%@ import Namespace="System.IO" %>
        <%@ import Namespace="System.Text" %>
        
  9. このプログラムはスタンドアロンでは動きますが、サーバーにアップロードしても素直に動くとは限りません。
    スタンドアロンで実行して作成された save.txt の内容です。
    KEY-1=Text Data-1
    KEY-2=Text Data-2
    

【NOTE】

  1. プログラムは簡単なのですが、サーバー上にファイルを新規作成するには許可が必要です。
    ウイルス対策の観点からも、むやみにファイルを作成されるとプロバイダも困るので、パスワードや別の URL を使って保護しています。
    当然ながら私が借りているサーバーでも動きませんでした。
  2. それともう一つ重要な問題は「Web のプログラムは、複数のクライアントが同時にログインする」可能性があることです。
    せっかく保存したデータを別のクライアントが上書きしたのでは、しゃれにもなりません。
    同時アクセスを制御するには、ファイルのロック/アンロックなどが必要で、一般的にはデータベースを使って保存しています。

datasave.aspx のソースコード

超初心者のプログラム入門(C# on-line game)