public bool insertScoreToDB(string departmentName, int classId, DataGridView dgv)
{
//存储过程 proc_InsertScore (@TABLENAME VARCHAR(30),@ColumnNames varchar(300),@Values varchar(300))
//获取全部列名
string dgvHeadText = string.Empty ;
for (int i = 0; i < dgv.Columns.Count; i++)
{
//跳过姓名列
if (dgv.Columns[i].HeaderText == "姓名")
continue;
dgvHeadText += dgv.Columns[i].HeaderText + ",";
}
//由于数据库内班级设定不能为空 故添加班级 反之若无任何数据 则
//dgvHeadText = dgvHeadText.Remove(dgvHeadText.length-1) 扣除最后一个逗号 ‘,’
dgvHeadText += "班级";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand comm = new SqlCommand(dboOwner+".proc_InsertScore", conn);
comm.CommandType = CommandType.StoredProcedure;
conn.Open();
comm.Parameters.Add("@TABLENAME", SqlDbType.VarChar);
comm.Parameters.Add("@ColumnNames", SqlDbType.VarChar);
comm.Parameters.Add("@Values", SqlDbType.VarChar);
for (int i = 0; i < dgv.Rows.Count; i++)
{
string values = string.Empty;
for (int j = 0; j < dgv.Columns.Count; j++)
{
//跳过姓名列(数据库内部不用姓名此行。。故跳过。。。。
if (dgv.Columns[j].HeaderText == "姓名")
continue;
values += dgv.Rows[i].Cells[j].Value+",";
}
//班级列数据添加
values += classId;
comm.Parameters["@TABLENAME"].Value = departmentName + "成绩表";
comm.Parameters["@ColumnNames"].Value = dgvHeadText;
comm.Parameters["@Values"].Value = values;
comm.ExecuteNonQuery();
}
conn.Close();
conn.Dispose();
return true;
}