我花了一整天才弄清楚我的编码有什么问题.有人可以告诉我,为了使我的编码工作,我应该改变什么.谢谢你:)
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand cmd = new SqlCommand("Insert into ExpTab (username,month,ex1,p1,ex2,p2,ex3,p3,ex4,p4,ex5,p5,ex6,p6,ex7,p7,ex8,p8,,p3,p4,p5,p6,p7,p8) Values (@name,@month1,@ex1s,@p1s,@ex2s,@p2s,@ex3s,@p3s,@ex4s,@p4s,@ex5s,@p5s,@ex6s,@p6s,@ex7s,@p7s,@ex8s,@p8s)", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", Membership.GetUser().UserName);
cmd.Parameters.AddWithValue("@month1", Label1.Text);
cmd.Parameters.AddWithValue("@ex1s", Label18.Text);
cmd.Parameters.AddWithValue("@p1s", Label20.Text);
cmd.Parameters.AddWithValue("@ex2s", Label2.Text);
cmd.Parameters.AddWithValue("@p2s", Label21.Text);
cmd.Parameters.AddWithValue("@ex3s", Label3.Text);
cmd.Parameters.AddWithValue("@p3s", Label22.Text);
cmd.Parameters.AddWithValue("@ex4s", Label4.Text);
cmd.Parameters.AddWithValue("@p4s", Label23.Text);
cmd.Parameters.AddWithValue("@ex5s", Label5.Text);
cmd.Parameters.AddWithValue("@p5s", Label24.Text);
cmd.Parameters.AddWithValue("@ex6s", Label6.Text);
cmd.Parameters.AddWithValue("@p6s", Label25.Text);
cmd.Parameters.AddWithValue("@ex7s", Label7.Text);
cmd.Parameters.AddWithValue("@p7s", Label26.Text);
cmd.Parameters.AddWithValue("@ex8s", Label8.Text);
cmd.Parameters.AddWithValue("@p8s", Label27.Text);
conn.Open();
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
我真的需要帮助:(
这个小片段是什么:
... p7,ex8,p8,,p3,p4,p5 ...
^^
Run Code Online (Sandbox Code Playgroud)
原意是要?
顺便说一句,这是一个修辞问题,因为至少有一位评论者不明白:-)这就是你的麻烦所在.
事实上,由于你有24个列名(不包括逗号之间的空名)和只有18个要插入的值(并且也基于列/值名称),所以从第二个逗号开始的整个部分几乎可以肯定从此是多余的.尝试删除整个,,p3,p4,p5,p6,p7,p8并使用此:
insert into ExpTab (
username, month, ex1, p1, ex2, p2, ex3, p3,
ex4, p4, ex5, p5, ex6, p6, ex7, p7, ex8, p8
) values (
@name, @month1, @ex1s, @p1s, @ex2s, @p2s, @ex3s, @p3s,
@ex4s, @p4s, @ex5s, @p5s, @ex6s, @p6s, @ex7s, @p7s, @ex8s, @p8s)
Run Code Online (Sandbox Code Playgroud)
这应该可以解决你的问题.