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 的含义:

  1. 在 MVC fwk 中,您有一个模型、一个视图和一个控制器。
  2. 在您的控制器中,您实例化一个模型,填充它......并调用视图。
  3. 当您有一个表单时,通常需要 2 个控制器操作:一个用于显示视图,另一个用于提交表单。
  4. 当您提交表单时,您将收到模型......在 MVC 中,您无法像在 WebForms 中那样访问表单字段(使用 TextBox1.Text 和 runat="server" 很明显您没有正确使用 MVC )。

除此之外,添加代码以直接从视图访问数据库在几个方面都是错误的......我的意思是,从技术上讲你可以做到,但你是在自找麻烦。

我强烈建议您下载一个示例 MVC 3 或 4 应用程序,以了解这些概念并进行一些测试。我建议您使用 Razor 来获取您的意见。

于 2013-04-18T15:17:49.050 回答
0

你上面的不是 MVC。它是网络表单。<script runat="server">标签是一个死的赠品。此代码应在控制器操作中。当用户单击 HTML 表单中的 HTML 提交时,MVC 会将请求路由到控制器操作。在此操作中,您将编写代码来执行 sql。

我强烈推荐 Razor 而不是 webforms 语法。它更清洁,更容易使用。

于 2013-04-18T14:55:40.910 回答