web-dev-qa-db-ja.com

フォームを使用してSQLサーバーテーブルにデータを挿入するASP.net

こんにちはphpでは、process.phpページを言うアクションを含むフォームを作成し、そのページで投稿値を取得し、mysql_queryを使用して挿入を実行します。今私は失われました、私はから作成し、Visual Studio 2010を使用してSQL Server 2008でASP.netに挿入しようとしています。

app_Dataフォルダーでsql dbを定義しました。基本的に私が必要とするのは(より良い方法がない限り)です:

  1. 投稿値を取得するにはどうすればよいですか。
  2. どのようにデータベースに挿入しますか。

ありがとう。

16
yossi

これを行う方法については、オンラインで多数のサンプルコードがあります。

これを行う方法の1つの例を次に示します。 http://geekswithblogs.net/dotNETvinz/archive/2009/04/30/creating-a-simple-registration-form-in-asp.net.aspx

次のタグの間にテキストボックスを定義します。

<form id="form1" runat="server"> 

テキストボックスを作成し、次のようにrunat = "server"に定義します。

<asp:TextBox ID="TxtName" runat="server"></asp:TextBox>

そのようにロジックを処理するボタンを定義します(onclickに注意してください):

<asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />

コードビハインドでは、ユーザーがボタンをクリックしたときにサーバーが実行することを定義します。

protected void Button1_Click(object sender, EventArgs e)

または、デザインビューでボタンをダブルクリックすることもできます。

以下は、ボタンクリックイベント(コードビハインド)でテーブルに挿入するコードの非常に簡単なサンプルです。

protected void Button1_Click(object sender, EventArgs e)
{
   string name = TxtName.Text; // Scrub user data

   string connString = ConfigurationManager.ConnectionStrings["yourconnstringInWebConfig"].ConnectionString;
   SqlConnection conn = null;
   try
   {
          conn = new SqlConnection(connString);
          conn.Open();

          using(SqlCommand cmd = new SqlCommand())
          {
                 cmd.Conn = conn;
                 cmd.CommandType = CommandType.Text;
                 cmd.CommandText = "INSERT INTO dummyTable(name) Values (@var)";
                 cmd.Parameters.AddWithValue("@var", name);
                 int rowsAffected = cmd.ExecuteNonQuery();
                 if(rowsAffected ==1)
                 {
                        //Success notification
                 }
                 else
                 {
                        //Error notification
                 }
          }
   }
   catch(Exception ex)
   {
          //log error 
          //display friendly error to user
   }
   finally
   {
          if(conn!=null)
          {
                 //cleanup connection i.e close 
          }
   }
}
16
clyc

シンプル、デザイナーでシンプルなaspページを作成します(開始時のみ)本文が次のようなものであるとしましょう。

<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    <p>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </p>
    </form>
</body>

素晴らしい、すべてのaspオブジェクトISオブジェクト。だから、aspのCSコードでアクセスできます。aspのCSコードは、イベント(ほとんど)によってトリガーされます。クラスはおそらく継承します- System.Web.UI.Page

Aspページのcsファイルにアクセスすると、保護されたvoid Page_Load(object sender、EventArgs e)...が表示されます。これはロードイベントです。これを使用して、ページのロード時にオブジェクトにデータを入力できます。

次に、デザイナーのボタン(Button1)に移動して、そのプロパティを確認します。デザインするか、そこからイベントを追加できます。イベントビューに変更し、イベントのメソッドを作成するだけです。

ボタンは WebコントロールButton Button1ClickというボタンにClickイベントを追加します。

void Button1Click(Object sender,EventArgs e) { }

ボタンをクリックすると、このメソッドが呼び出されます。 ASPはオブジェクト指向であるため、ページを実際のクラスと考えることができ、オブジェクトは実際の現在のデータを保持します。

たとえば、TextBox1のテキストにアクセスする場合は、C#コードでそのオブジェクトを呼び出すだけです。

String firstBox = TextBox1.Text;

同じ方法で、イベントが発生したときにオブジェクトを追加できます。

ユーザーがテキストボックスに投稿したデータを取得したので、通常のC#SQL接続を使用してデータベースにデータを追加できます。

2
Yochai Timmer