将姓名年龄插入到数据库失败,对sql语句不太熟悉,请求各位大神指教,多谢多谢!

解决方案 »

  1.   

     context.Response.ContentType = "text/html";
            string connString = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//连接数据库
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    conn.Open();
                    cmd.Connection = conn;
                    cmd.CommandText = "insert into 姓名年龄(Name,Age) values (@Name,@Age)";
                    //cmd.Parameters.Add(new SqlParameter(("@username", username)); 网上找的解决办法
                    cmd.Parameters.Add(new SqlParameter("@Name", context.Request.Form["txtName"]));
                    cmd.Parameters.Add(new SqlParameter("@Age", context.Request.Form["txtAge"]));
                    //cmd.Parameters.Add("@Name", context.Request.Form["txtName"]);
                    //cmd.Parameters.Add("@Age", context.Request.Form["txtAge"]);
                    if (cmd.ExecuteNonQuery() > 0)
                    {
                        context.Response.Redirect("UserInfoList.ashx");//跳转到
                    }
                    else
                    {
                        context.Response.Write("添加失败!!");
                    }
                }
            }
      

  2.   

    “/”应用程序中的服务器错误。
    参数化查询 '(@Name nvarchar(4000),@Age nvarchar(4000))insert into 姓名年龄(Name,' 需要参数 '@Name',但未提供该参数。
    说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 参数化查询 '(@Name nvarchar(4000),@Age nvarchar(4000))insert into 姓名年龄(Name,' 需要参数 '@Name',但未提供该参数。源错误: 
    行 24:                 //cmd.Parameters.Add("@Name", context.Request.Form["txtName"]);
    行 25:                 //cmd.Parameters.Add("@Age", context.Request.Form["txtAge"]);
    行 26:                 if (cmd.ExecuteNonQuery() > 0)
    行 27:                 {
    行 28:                     context.Response.Redirect("UserInfoList.ashx");//跳转到
      

  3.   

    是学习项目还是工作项目?
    如果是学习项目,代码不重要的话,发到GIT上面,给个地址看看吧
      

  4.   


    context.Response.ContentType = "text/html";
            string connString = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//连接数据库
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    conn.Open();
                    cmd.Connection = conn;
                    cmd.CommandText = "insert into 姓名年龄(Name,Age) values (@Name,@Age)";
                    cmd.CommandType = CommandType.Text;//------
                    //cmd.Parameters.Add(new SqlParameter("@Name", context.Request.Form["txtName"]));//请调试确保这里可以取到值context.Request.Form["txtName"]
                    //cmd.Parameters.Add(new SqlParameter("@Age", context.Request.Form["txtAge"]));//可以尝试写死看看
                    cmd.Parameters.Add(new SqlParameter("@Name", "txtName"));
                    cmd.Parameters.Add(new SqlParameter("@Age", 12));
                    if (cmd.ExecuteNonQuery() > 0)
                    {
                        context.Response.Redirect("UserInfoList.ashx");//跳转到
                    }
                    else
                    {
                        context.Response.Write("添加失败!!");
                    }
                }
            }
      

  5.   

    //请调试确保这里可以取到值context.Request.Form["txtName"]
    cmd.Parameters.Add(new SqlParameter("@Name", context.Request.Form["txtName"]));
    //cmd.Parameters.Add(new SqlParameter("@Age", context.Request.Form["txtAge"]));
      

  6.   

    insert into 姓名年龄(Name,Age) values (@Name,@Age)
    这里的Name触发了sql的name关键字保护,你是什么数据库,用[]或者对应的符号包裹起来。SqlServer like this:
    insert into [姓名年龄]([Name],[Age]) values (@Name,@Age)MySql like this:
    insert into `姓名年龄`(`Name`,`Age`) values (@Name,@Age)PLSql like this:
    insert into '姓名年龄'('Name','Age') values (@Name,@Age)