0

私は MVC4 ビュー ページを使用しており、ボタンをクリックしてテキスト ボックスから MS SQL データベースにデータを挿入しようとしています。問題は「con.open()」だと思いますが、どこで宣言すればよいかわかりません。これが私のコードです:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage" %>

<script runat="server">

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["GreenEnergyConnectionString1"].ConnectionString);

   protected void Button1_Click(object sender, EventArgs e)
{
    con.Open();
    SqlCommand cmd = new SqlCommand("insert into CUSTOMER values ('"+TextBox2.Text+"', '"+TextBox3.Text+"', '"+TextBox4.Text+"','"+TextBox5.Text+"','"+TextBox6.Text+"', '"+TextBox7.Text+"', '"+TextBox8.Text+"')",con);
    cmd.ExecuteNonQuery();
    con.Close();
    TextBox8.Text = "";
    TextBox7.Text = "";
    TextBox6.Text = "";
    TextBox5.Text = "";
    TextBox4.Text = "";
    TextBox3.Text = "";
    TextBox2.Text = "";

}

そして、私のweb.configで次のように宣言しました:

<add namespace="System.Data.SqlClient"/>
<add namespace="System.Configuration"/>
4

2 に答える 2

0

上記のものはMVCではありません。それはウェブフォームです。<script runat="server">タグは完全無料です。このコードはコントローラー アクションにある必要があります。ユーザーが HTML フォームで HTML 送信をクリックすると、MVC は要求をコントローラー アクションにルーティングします。このアクション内で、SQL を実行するコードを記述します。

Webフォーム構文よりもRazorを強くお勧めします. はるかにクリーンで作業が簡単です。

于 2013-04-18T14:55:40.910 に答える
0

あなたのアプローチには、あなたを直接助けるのが難しい、間違っている、または少なくとも標準以下のことがたくさんあると思います。代わりに、MVC の意味を説明できると思います。

  1. MVC fwk には、モデル、ビュー、およびコントローラーがあります。
  2. コントローラーで、モデルをインスタンス化し、それを設定し、ビューを呼び出します。
  3. フォームがある場合、通常は 2 つのコントローラー アクションが必要です。1 つはビューの表示用で、もう 1 つはフォームの送信用です。
  4. フォームを送信すると、モデルを受け取ります... MVC では、WebForms のようにフォーム フィールドにアクセスできません (TextBox1.Text と runat="server" を使用すると、MVC を正しく操作していないことが明らかです)。

それとは別に、ビューからデータベースに直接アクセスするためのコードを追加することは、いくつかの点で間違っています...つまり、技術的には実行できますが、問題が発生しています。

MVC 3 または 4 アプリケーションの例をダウンロードして、概念を理解し、いくつかのテストを行うことを強くお勧めします。ビューには Razor を使用することをお勧めします。

于 2013-04-18T15:17:49.050 に答える