私はこのサイトを構築してsql paramsを使用しようとしています。私は私が与えられた例に従ったと思ったが、SQLのデータはテキストボックスに入れられた値の代わりに '@username'と 'number'を表示する。SQLパラメータを取得しようとしています
私は困惑。あなたはSQLのINSERT文でパラメータ名の前後に引用符を置くための助け
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.Data;
using System.Data.SqlClient;
public partial class management_Default : System.Web.UI.Page
{
public void runsql(string sqlCmdTxt, bool adduserbool)
{
SqlConnection sqlConnection = new SqlConnection("Server=DELLXPS\\SQLEXPRESS; Initial Catalog=Warren_SEINDATASYSTEMS; Integrated Security=true;");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = sqlCmdTxt;
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
//If statement uses adduserbool param to determine if the code needs to make sql params for users
if (adduserbool == true)
{
SqlParameter user = new SqlParameter();
user.ParameterName = "@username";
user.Value = CreateUserWizard1.UserName.Trim();
cmd.Parameters.Add(user);
if (txtboxNumberOfVisitors.Text != "")
{
SqlParameter number = new SqlParameter();
number.ParameterName = "@number";
number.Value = txtboxNumberOfVisitors.Text;
cmd.Parameters.Add(number);
}
else
{
// this else will send "2" if the text box is empty
SqlParameter number = new SqlParameter();
number.ParameterName = "@number";
number.Value = "2";
cmd.Parameters.Add(number);
}
}
sqlConnection.Open();
//cmd.ExecuteScalar();
reader = cmd.ExecuteReader();
sqlConnection.Close();
//if user was created, clear number of visitors text box
if (adduserbool == true)
{
txtboxNumberOfVisitors.Text = "";
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
//Add residents to resident role
Roles.AddUserToRole(CreateUserWizard1.UserName, "resident");
runsql("INSERT INTO [dbo].[NumberOfVisitors] ([ResidentName],[NumberOfVisitors]) VALUES ('@username','@number')", true);
}
}
うわー。私はそれを信じられません。私は問題がコードであり、文字列を見ていないと考えました。ありがとうございました – birdseed
公正であるように、それは午前6時を押していて、私は一晩中働いていました – birdseed