当我触发插入查询时,我得到SqlException

贾纳科斯

成员
已加入
2020年4月6日
留言内容
5
编程经验
Beginner
你好 ,
我是这个论坛的新手,也是福彩12选5走势图Web编程的新手。我正在使用SQL Server和Visual Studio ver 16开发LMS(库管理系统)。将数据插入数据库时​​遇到问题。与我在其他页面中使用的相同代码,效果完美。将硬编码的值放在insert语句中,它可以完美工作,这意味着与数据库的连接没有问题,那么问题出在哪里?它可以是文本框等名称和属性,我也检查并发现正确。代码如下
SignUpNewMemeber:
void SignUpNewMember()
        {
          
            try
            {
                SqlConnection con = new SqlConnection(strcon);
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                    
                }
                // SqlCommand cmd = con.CreateCommand();
                //cmd.CommandType = CommandType.Text;// beow is the way to write a query like ist put '' then iside we have "" and then isde we  have ++ and then inside we have text box name
                // cmd.CommandText= "INSERT INTO member_master_tbl values('"++"','"++"','"++"','"++"','"++"','"++"','"++"','"++"','"++"')"
                // cmd.CommandText = "INSERT INTO member_master_tbl (full_name,dob,contact_no,email,state,city,pincode,full_address,member_id,password) values ('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','"+TextBox4.Text.Trim()+"','" + TextBox3.Text.Trim() + "','" + DropDownList1.SelectedItem.Value + "','" + TextBox6.Text.Trim() + "','" + TextBox7.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox8.Text.Trim() + "','" + TextBox9.Text.Trim() + "');";

                //notr thr col nsmes in the query are case sensitive
                String status = "pending";

                SqlCommand cmd = new SqlCommand("INSERT INTO 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);
                cmd.Parameters.AddWithValue("@full_name", TextBox1.Text.Trim());
                cmd.Parameters.AddWithValue("@dob", TextBox2.Text.Trim());
                cmd.Parameters.AddWithValue("@contact_no", TextBox3.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",status);
                
                cmd.ExecuteNonQuery();
                con.Close();
                Response.Write("<script>alert('Sign Up Successful. Go to User Login to Login');</script>");
            }
            catch (SqlException  ex)
            {
                
                Response.Write("<script>alert('" + ex.Message + "');</script>");
            }
        }
C#:
 

贾纳科斯

成员
已加入
2020年4月6日
留言内容
5
编程经验
Beginner
好吧,我已经更改了浏览器,并且可以正常工作。我当时使用的是chrome,现在使用的是Edge,但我并不真正理解为什么。请给出意见
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,933
地点
英国
编程经验
10+
我建议使用带有ajax或嵌入式js函数的asp.net更新面板,以避免浏览器冲突。

您还应该考虑使用适当的名称来命名控件,这些名称对于在窗体上标识其目的和关系很有意义。

你所说的一切都没有道理。如果您使用完全相同的代码,那么它将在其他浏览器中执行与以前相同的操作。所以很明显有些不同。
 

贾纳科斯

成员
已加入
2020年4月6日
留言内容
5
编程经验
Beginner
我做到了。当时我需要的是如何打印我发现并应用的详细异常的信息,然后它告诉我,表字段之一的大小不能容纳超过50个字符,因此增加该值,一切都很好
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,933
地点
英国
编程经验
10+
请注意有关表大小的信息。设置表大小以使用50个字符时,可以说在插入命令期间仅使用15个字符。无论该字段仅填充15个字符,您仍在使用50个字符的空间。这与结构的定义方式有关,因此只能将字段容量增加到您真正需要的容量,因为填充新数据行的每个命令都会积累此空间,而不管是否使用它。它还有助于在插入数据之前检查字段,但这可以通过使用ORM来简化。
 
最佳 底部