2016-08-22 49 views
1

为什么这个代码不工作,我尝试插入从文本框表,专业,课程的学生证和学生的名字从下拉列表中插入值

int sID = Convert.ToInt32(TextBox1.Text); 
string Name = TextBox2.Text; 
var mjr = DropDownList1.SelectedItem.Value; 
var crs = DropDownList2.SelectedItem.Text; 

string registered = "insert into Registered (Student_name, StudentID, Major, Course) values(@sName ,@SID, @major , @course)"; 

while (reader.Read()) 
{ 
    ints.Add(reader.GetInt32(0)); 

    if (a.Count() <= ints.Count() && !a.Except(ints).Any()) 
    { 
     SqlCommand com4 = new SqlCommand(registered, con); 

     com4.Parameters.AddWithValue("sName", Name); 
     com4.Parameters.AddWithValue("SID", sID); 
     com4.Parameters.AddWithValue("major", mjr); 
     com4.Parameters.AddWithValue("course", crs); 
     com4.ExecuteNonQuery(); 
+0

发布您的错误。 –

回答

1

你需要添加带标量属性名称的“@”

com4.Parameters.AddWithValue("@sName", Name); 
com4.Parameters.AddWithValue("@SID", sID); 
com4.Parameters.AddWithValue("@major", mjr); 
com4.Parameters.AddWithValue("@course", crs); 
com4.ExecuteNonQuery(); 
+1

[永远不要建议使用'AddWithValue'](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) – DavidG

+0

我没有提出任何建议在这里,只需修复上面的代码。 :) –

+1

然后建议如何正确地做到这一点! – DavidG