2015-07-22 5 views
0

После установки локального сервера я хочу отправить данные в SQL server с HTML page. Я использую C#, ASP.NET. Но проблема в том, что я использую метод post, он просто показывает мне пустой результат, не отправляя правильно string на мой сервер mssql.HTML для отправки данных SQL при использовании метода POST

Ниже приводится часть моего файла Write.aspx, в котором в основном принимают информацию от пользователей через HTML ввод текста. И я использовал метод пост, чтобы иметь дело с информацией в Write_Check.aspx (на самом деле в коде позади, Write_Check.aspx.cs)

<%@ Page Language = "C#" AutoEventWireup = "true" 
CodeFile = "Write.aspx.cs" Inherits = "Article_Write" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns = "http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Title</title> 
    <script language = "javascript"> 
    </script> 
</head> 
<body> 
    <form id = "form1" method = "post" action = "Write_Check.aspx"> 
     <center> 
      <table width = "100%" border = "0" cellpadding = "2" cellspacing = "3"> 
       <tbody><tr align = "left"> 
        <td colspan = "3"> 
         <h2>Write Article</h2> 
        </td> 
       </tr> 
       <tr align = "left"> 
        <td width = "100px"> 
         Writer 
        </td> 
        <td width = "600px"> 
         <input type = "text" id = "writername" name = writer_name /> 
        </td> 
       </tr> 

и мой Write_Check.aspx только одна линия.

<%@ Page Language = "C#" AutoEventWireup = "true" CodeFile = "Write_Check.aspx.cs" Inherits = "Save_Check" %> 

и это мой Write_Check.aspx.cs. CWebBase - это всего лишь набор методов для подключения к db, чтобы я мог легко использовать его для других файлов cs.

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class Save_Check : CWebBase 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string name, password, title, content; 
     //find form name 
     name = Request.Form["writer_name"]; 
     password = Request.Form["password_check"]; 
     title = Request.Form["title_check"]; 
     content = Request.Form["content_check"]; 

     CDatabase _db = new CDatabase(); 

     string sql = "INSERT INTO dbo.article (writerName, passwords, title, content) values('" 
      + name + "','" + password + "','" + title + "','" + content + "')"; 

     _db.ExecuteSQL(sql); 
     _db.Dispose(); 

     Response.Redirect("List.aspx"); 

    } 
} 

Я не уверен, почему метод почты, который я использовал здесь, работает правильно.

+0

Это Save_Check не Write_Check, это опечатка? – Zippy

+0

О да, это опечатка. Простите за это. – jooShin

+0

Вы забыли добавить тег runat = "server" для своей формы. Проверьте [w3 tutorial] (http://www.w3schools.com/aspnet/aspnet_forms.asp) для получения дополнительной информации. – Zippy

ответ

1

Итак, из того, что я вижу, вы фактически не отправляете форму (а не в код, который вы отправили в любом случае).
Чтобы увидеть значения в коде позади, вам необходимо отправить форму, нажав кнопку (или что-нибудь еще, что вы хотите).
Например:

<form id="form1" runat="server"> 
//data to submit 
<asp:Button id="button1" Text="Click me!" runat="server" OnClick="submit" /> 
</form> 

После отправки формы вы можете проверить значения, как вы пробовали:
name = Request.Form["writer_name"];

Смежные вопросы