c# - 查询未添加到表中
问题描述
我是网络表单的新手,正在尝试将前端 aspx 页面中的值添加到我的 sql 表中。但是我无法将它添加到表中。它正在打印除 ExecuteNonQuery() 之后的最后一个提示值之外的所有提示值。它也没有打印异常。它没有显示任何提示。
这是CS文件中的代码:
namespace LibraryManagementSystem
{
public partial class Usersignup : System.Web.UI.Page
{
string strcon = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
}
//sign up button click event
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('Testing');</script>");
try
{
SqlConnection con = new SqlConnection(strcon);
if(con.State == ConnectionState.Closed)
{
con.Open();
}
Response.Write("<script>alert('Connection');</script>");
SqlCommand cmd = new SqlCommand("INSERT INTO dbo.member_master_tbl(full_name,dob,contact_no,email,state,city,pincode," +
"full_address,member_id,password,account_status) values" +
"(@full_name,@dob,@contact_no,@email,@state,@city,@pincode," +
"@full_address,@member_id,@password,@account_status) ", con);
Response.Write("<script>alert('Query');</script>");
cmd.Parameters.AddWithValue("(@full_name", Textbox3.Text.Trim());
cmd.Parameters.AddWithValue("(@dob", Textbox2.Text.Trim());
cmd.Parameters.AddWithValue("(@contact_no", Textbox1.Text.Trim());
cmd.Parameters.AddWithValue("(@email", Textbox4.Text.Trim());
cmd.Parameters.AddWithValue("(@state", DropDownList1.SelectedItem.Value);
cmd.Parameters.AddWithValue("(@city", Textbox6.Text.Trim());
cmd.Parameters.AddWithValue("(@pincode", Textbox7.Text.Trim());
cmd.Parameters.AddWithValue("(@full_address", Textbox5.Text.Trim());
cmd.Parameters.AddWithValue("(@member_id", Textbox8.Text.Trim());
cmd.Parameters.AddWithValue("(@password", Textbox9.Text.Trim());
cmd.Parameters.AddWithValue("(@account_status", "pending");
Response.Write("<script>alert('Table');</script>");
cmd.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert('Sign Up Successful. Go to User Login to Login');</script>");
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "');</script>");
}
}
}
}
它在执行非查询之前打印所有响应值
我不明白为什么它不打印最后 2 个响应。请帮忙
解决方案
我认为发生的事情是,当您添加参数值时,每个参数名称中的“@”之前都有一个左括号,所以当查询被执行时,它会抛出异常,无法在数据库表中插入记录,并且未能发送最后一个响应。用这个替换你的代码段(删除每一行的左括号):
cmd.Parameters.AddWithValue("@full_name", Textbox3.Text.Trim());
cmd.Parameters.AddWithValue("@dob", Textbox2.Text.Trim());
cmd.Parameters.AddWithValue("@contact_no", Textbox1.Text.Trim());
cmd.Parameters.AddWithValue("@email", Textbox4.Text.Trim());
cmd.Parameters.AddWithValue("@state", DropDownList1.SelectedItem.Value);
cmd.Parameters.AddWithValue("@city", Textbox6.Text.Trim());
cmd.Parameters.AddWithValue("@pincode", Textbox7.Text.Trim());
cmd.Parameters.AddWithValue("@full_address", Textbox5.Text.Trim());
cmd.Parameters.AddWithValue("@member_id", Textbox8.Text.Trim());
cmd.Parameters.AddWithValue("@password", Textbox9.Text.Trim());
cmd.Parameters.AddWithValue("@account_status", "pending");
至于为什么没有发送“catch”块中的响应,异常消息中可能包含一些被解释为 JavaScript 的字符。由于您对“警报”的调用使用单引号,因此如果异常返回的消息中还包含任何单引号,这将终止传递给警报的字符串,并且该引号之后的所有内容都将被视为 JavaScript。
推荐阅读
- java - 如何在另一个java文件中匹配名称并显示来自firebase的详细信息?
- python - AttributeError:“dict”对象没有属性“value”。我不知道为什么
- ios - Crashlytics 在 Firebase 控制台中显示 75% 的无崩溃用户,但不显示崩溃日志?
- python - 从python内部执行的命令'host'获取IP
- python - 图网络的测试/训练数据集
- c# - 使用 C# 在不禁用 UAC 的情况下远程关闭
- php - PHP 源代码没有被执行,它显示在呈现的页面上
- r - 使用 Data.Table 有条件地选择组内的行
- r - 如何从日期、时间、LTP 形式的矩阵中的可用数据中绘制 LTP 与时间的关系
- python - 无法使用 pip 安装 pycurl 或 wptools