我是ASP.NET的新手,我尝试创建一个联系表单,它在提交时发送电子邮件以及将数据存储在数据库中。ASP.NET联系表格 - 输出到电子邮件和访问数据库
我已经阅读了大量的教程,并且我对使用电子邮件设置的基本联系表单非常满意 - 但我在数据库部分遇到问题。
请让我知道你是否曾经这样做过,或者如果你能提供任何信息来帮助我完成这项任务。
我正在运行ASP.NET 2.0
在此先感谢。
我是ASP.NET的新手,我尝试创建一个联系表单,它在提交时发送电子邮件以及将数据存储在数据库中。ASP.NET联系表格 - 输出到电子邮件和访问数据库
我已经阅读了大量的教程,并且我对使用电子邮件设置的基本联系表单非常满意 - 但我在数据库部分遇到问题。
请让我知道你是否曾经这样做过,或者如果你能提供任何信息来帮助我完成这项任务。
我正在运行ASP.NET 2.0
在此先感谢。
我对C#和ASP.NET(第一年级的IT学生)都很陌生。直到一个月前,我甚至从未查看过C#代码,更不用说编程C#中的任何东西。我也一直在梳理互联网寻求解决这个问题的办法。经过一个星期的修改代码后,我终于明白了。下面的代码将允许您创建ASP.NET“联系我们”电子邮件表单,并将表单中的信息发送到SQL Server数据库。我希望这可以帮助别人避免我经历的同样的恶化! (如果有人知道的方式来更有效地设定此,我很想听听你的看法。)
下面是ASPX.CS文件中的代码附在表:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class Contact : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//Code for the Reset event (will reset form data):
protected void Reset(object s, EventArgs e)
{
fname.Text = "";
lname.Text = "";
email.Text = "";
phone.Text = "";
comments.Text = "";
}
//Code for the SendMail Event; will send email and write info in email into database:
protected void SendMail(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress(email.Text);
mail.To.Add("EMAIL ADDRESS WHERE YOU'D LIKE THE MESSAGE SENT");
mail.Subject = "Contact Us";
mail.IsBodyHtml = true;
mail.Body += "First Name: " + fname.Text + "<br />";
mail.Body += "Last Name: " + lname.Text + "<br />";
mail.Body += "Comments: " + comments.Text + "<br />";
mail.Body += "Phone Number: " + phone.Text + "<br />";
SmtpClient smtp = new SmtpClient();
smtp.Host = "NAME OF SMTP RELAY SERVER";
smtp.Send(mail);
}
protected void insertInfo(object sender, EventArgs e)
{
SqlConnection myConnection = new SqlConnection (ConfigurationManager.ConnectionStrings["WEB.CONFIG CONNECTION STRING NAME"].ToString());
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT INTO TABLE NAME (fname, lname, email, phone, comment)
VALUES (@fname, @lname, @email, @phone, @comments)";
cmd.Connection = myConnection;
cmd.Parameters.Add("@fname", fname.Text);
cmd.Parameters.Add("@lname", lname.Text);
cmd.Parameters.Add("@email", email.Text);
cmd.Parameters.Add("@phone", phone.Text);
cmd.Parameters.Add("@comments", comments.Text);
myConnection.Open();
cmd.ExecuteNonQuery();
myConnection.Close();
}
}
不错的使用你的SQL插入的参数:)但是,我会建议你设置'mail.IsBodyHtml'等于'false',因为你不是在那里消毒输入,然后使用Environment.NewLine或“\ n \ r “在电子邮件中生成中断。进一步说,您可能想要使用StringBuilder构建邮件正文,并使用AppendLine方法为您处理所有这些操作(http://msdn.microsoft.com/zh-cn/library/default.aspx)我们/库/ system.text.stringbuilder.appendline.aspx)。 – 2009-12-11 16:26:59
感谢您的提示!非常感谢;我需要所有的建议,作为一个新手。我会遵循你的承诺。 – 2009-12-11 17:40:43
谢谢KP - 你的代码一直是巨大的帮助! – megapixel 2009-12-17 15:02:49
你有任何代码到目前为止?或者您是否希望我们为您编写整个解决方案? ;-) – 2009-12-01 17:31:11
这里是我目前的form.aspx:http://pastie.org/722208 这里是我的Web.config:http://pastie.org/722213 这两个在线教程的帮助。我的表单会更先进,但为了测试目的,我将它留在那里。 我真的不知道从哪里开始将表单数据导入数据库。我认为我可以通过提交按钮 - 一个onclick动作。 我期待学习,所以如果解决方案没有编码给我,我将不胜感激。 – megapixel 2009-12-01 19:25:00
为了更具体地说明我的要求 - 你认为这会使我的表单到db工作的正确方向是什么? – megapixel 2009-12-01 19:31:07