1
私はチュートリアルに従っているばかりの初心者です。私は最も近い質問を検索し、いくつか試しました。それらのどれも私のために働かない。可能であればどこか手がかりが必要なだけです。ありがとう。C#のWebフォームから送信されたデータはSQLデータベースを挿入できませんでした
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace Company
{
public partial class ContactUs : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void update(string FirstName, string LastName, string EmailAddress, string MobileNumber, string category, string message)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
string sql = "INSERT INTO ContactInformation (GUID,FirstName, LastName, EmailAddress, Number, Category, Message) VALUES "
+ " (@GUID,@FirstName,@LastName,@EmailAddress,@Number,@category,@message)";
Guid guid = Guid.NewGuid();
string guidString = guid.ToString();
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter[] p = new SqlParameter[7];
p[0] = new SqlParameter("@GUID", SqlDbType.UniqueIdentifier,50);
p[1] = new SqlParameter("@FirstName", SqlDbType.VarChar,50);
p[2] = new SqlParameter("@LastName", SqlDbType.VarChar,50);
p[3] = new SqlParameter("@EmailAddress", SqlDbType.VarChar,50);
p[4] = new SqlParameter("@Number", SqlDbType.VarChar,50);
p[5] = new SqlParameter("@Category", SqlDbType.VarChar,50);
p[6] = new SqlParameter("@Message", SqlDbType.VarChar,50);
p[0].Value = guid;
p[1].Value = FirstName;
p[2].Value = LastName;
p[3].Value = EmailAddress;
p[4].Value = MobileNumber;
p[5].Value = category;
p[6].Value = message;
for (int i = 0; i < p.Length; i++)
{
cmd.Parameters.Add(p[i]);
}
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
public string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["ContactInformation"].ConnectionString;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (!IsPostBack)
{
Validate();
update(txtFirstName.Text,
txtLastName.Text,
txtEmail.Text,
txtNumber.Text,
DropDownList1.SelectedItem.Text,
txtMessage.Text);
Response.Write("Record was successfully added!");
//ClearForm(Page);
}
}
public static void ClearForm(Control Parent)
{
if (Parent is TextBox)
{ (Parent as TextBox).Text = string.Empty; }
else
{
foreach (Control c in Parent.Controls)
ClearForm(c);
}
}
}
}
接続文字列はweb.configファイルにあります。
<connectionStrings>
<add name="ContactInformation" connectionString="datasource=database;initial catalog=ContactInformation;Integrated Security=SSPI;userid=xxx;password=xxx;"/>
</connectionStrings>
私は私のローカルマシン上のWebサイトを展開し、他の側に、インターネットExplorer.And上でそれをテストしようと、私は、データベース管理ツールを開いて、テーブルには空のままです。
こんにちは@MethodMan申し訳ありませんが投稿に慣れていません。私は自分のコードを編集しました。私はコードのエラーを受け取りません。データベースにデータを挿入できませんでした。 – GoResistanceLi
デバッガでコードを1行ずつ進めてみましたか?それは、あなたが期待したコードのパスをたどったのでしょうか? – mason
評価するべきコードとすべてのパラメータ値をステップ実行したときにも、パラメータを適切に作成する方法を調べるべきだと思います。この行にブレークポイントを設定して、この行にヒットするかどうかを確認してください。 'string msg =" Insert Error: "; 1'また、Sqlオブジェクトを' using(){} 'の周りにラップして、作成されたオブジェクト – MethodMan