【发布时间】:2014-02-05 18:29:03
【问题描述】:
我正在尝试创建一个出勤表来记录学生参与的活动。创建新活动时会触发以下代码。创建新活动时,我想将所有学生记录插入到考勤表中,并将默认参加属性标记为 false。 (attend属性用来标记出勤,设为0)
问题是考勤表无法填充。代码将在以下行停止:numofRecordsAffected = command.ExecuteNonQuery();
我正在尝试从学生表中获取所有 sigstudentid(s)。我不知道在这种情况下是否建议使用 foreach(),但我们将不胜感激。
我需要一个解决方案!
public int InsertAttendance(int num)
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand();
SqlConnection connect = new SqlConnection();
DataSet dataset = new DataSet();
String sqlText = "SELECT * FROM Student";
connect.ConnectionString = "Data Source=TECKISTTLE; Initial Catalog=Assignment; Integrated Security=True";
command.Connection = connect;
command.CommandText = sqlText;
int numofRecordsAffected = 0;
adapter.SelectCommand = command;
connect.Open();
adapter.Fill(dataset, "StudentData");
sqlText = "";
foreach (DataRow item in dataset.Tables["StudentData"].Rows)
{
sqlText += " INSERT INTO Attendance(SIGStudentID, ActivityId, Attendance) VALUES(@SIGStudentID,@ActivityId,@Attendance); ";
command.Parameters.Clear();
command.Parameters.Add("@SIGStudentID", SqlDbType.Int);
command.Parameters["@SIGStudentID"].Value = Convert.ToInt32(item["SIGStudentID"]);
command.Parameters.Add("@ActivityId", SqlDbType.Int);
command.Parameters["@ActivityId"].Value = num;
command.Parameters.Add("@Attendance", SqlDbType.Bit);
command.Parameters["@Attendance"].Value = 0;
}
numofRecordsAffected = command.ExecuteNonQuery();
connect.Close();
return numofRecordsAffected;
}
【问题讨论】:
-
您使用的是哪个版本的 SQL Server??
-
我正在使用 Microsoft Sql Server Management Studio 2012
-
那是 不是 ASP Classic(这将是 VBA 代码而已)- 我假设您的意思是
asp.net而不是
标签: asp.net sql sql-server insert rows