一,ADO.net的方式
1、读取excel数据到dataset
public static System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection ExcelConn = new OleDbConnection(strCon);
try
{
string strCom = string.Format("SELECT * FROM [Sheet1$]");
ExcelConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + tableName + "$]");
ExcelConn.Close();
return ds;
}
catch
{
ExcelConn.Close();
return null;
}
}
2、将数据写入到数据库
protected void Button2_Click(object sender, EventArgs e)
{
string filename = FileUpload1.FileName;
string savePath = Server.MapPath(("~/fujian/") + filename);
FileUpload1.SaveAs(savePath);
DataSet ds = ExcelSqlConnection(savePath, filename);
//GridView1.DataSource = ds;
//GridView1.DataBind();
DataRow[] dr = ds.Tables[0].Select();
for (int i = 0; i < dr.Length; i++)
{
SqlConnection myconn = myconnect();
myconn.Open();
string title = dr[i]["名称"].ToString();
string huanxianweizhi = dr[i]["环线位置"].ToString();
string quyu = dr[i]["区域"].ToString();
string sqlstr1 = "select * from dbo.test where name='" + quyu + "'"; //区域中间表转换
SqlCommand myCmd1 = new SqlCommand(sqlstr1, myconn);
SqlDataAdapter mydata = new SqlDataAdapter(myCmd1);
DataSet my = new DataSet();
mydata.Fill(my);
GridView1.DataSource = my;
GridView1.DataBind();
string quyu1 = my.Tables[0].Rows[0][0].ToString(); ;
//SqlDataAdapter adapt = new SqlDataAdapter(sqlstr1, myconn);
DataSet ds1 = new DataSet();
string zuoluo = dr[i]["座落"].ToString();
string yongtu = dr[i]["用途"].ToString();
string chengjiaotaoshu = dr[i]["成交套数"].ToString();
string jianzhumianji = dr[i]["建筑面积"].ToString();
string chengjiaozongjia = dr[i]["成交总价"].ToString();
string dangrijunjia = dr[i]["当日均价"].ToString();
string chengjiaoriqi = dr[i]["成交日期"].ToString();
string qitashuoming = dr[i]["其他说明"].ToString();
string bankuai = dr[i]["板块"].ToString();
//SqlConnection myconn = myconnect();
//myconn.Open();
string sqlstr = "insert into dbo.youweishuju(名称,环线位置,区域,座落,用途,成交套数,建筑面积,成交总价,当日均价,成交日期,其他说明,板块)values('" + title + "','" + huanxianweizhi + "','" + quyu1 + "','" + zuoluo + "','" + yongtu + "','" + chengjiaotaoshu + "','"+ jianzhumianji +"','"+ chengjiaozongjia +"','"+ dangrijunjia +"','"+ chengjiaoriqi +"','"+ qitashuoming +"','"+ bankuai +"')";
//string sqlstr = "insert into dbo.youweishuju(名称)values('" + title + "')";
SqlCommand myCmd = new SqlCommand(sqlstr, myconn);
myCmd.ExecuteNonQuery();
myconn.Close();
}
}
二,linq的方式
1、读取excel数据并且验证
protected void UpLoad()
{
this.GvReport.DataSource = null;
this.GvReport.DataBind();
var fileName = string.Empty;
try
{
if (this.FileUpload1.PostedFile != null && !string.IsNullOrEmpty(this.FileUpload1.PostedFile.FileName))
{
if (!".xls,.xlsx".Contains(Path.GetExtension(this.FileUpload1.PostedFile.FileName)))
{
Response.Write("<script>alert('上传的文件不是EXCEL文件!请重新上传!');</script>");
}
else
{
var connectionString = string.Empty;
fileName = Path.GetTempFileName();
this.FileUpload1.PostedFile.SaveAs(fileName);
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + "Extended properties='Excel 12.0;HDR=yes;IMEX=1'";
var sql = "Select * from [Sheet1$]";
var dataAdapter = new OleDbDataAdapter(sql, connectionString);
var ds = new DataSet();
dataAdapter.Fill(ds, "ExcelInfo");
var dataTable = ds.Tables["ExcelInfo"];
var tb = new List<OrganizationBasis>();
foreach (DataRow dr in dataTable.Rows)
{
var query = new OrganizationBasis
{
StudentCode = dr["学号"].ToString().Trim(),
StudentName = dr["姓名"].ToString().Trim(),
SubjectName = dr["科目名称"].ToString().Trim(),//
CourseName = dr["模块名称"].ToString().Trim(),//
OrganizationNo = dr["班级编号"].ToString(),
OrganizationName = dr["班级名称"].ToString(),
SeatNo = dr["座位号"].ToString(),
ClassTypeName = dr["班级类型"].ToString(),
TeacherName = dr["任课教师"].ToString().Trim(),
RoomName = dr["教室"].ToString(),
WeekName = dr["星期"].ToString(),
PeriodName = dr["节次"].ToString().Trim(),
Remark = string.Empty,
Status = true
};
tb.Add(query);
}
if (tb.Count() == decimal.Zero)
{
ShowMessage("EXCLE内容为空,请核对并修改后再重新上传!");
return;
}
using (var db = new SMSPModel.SMSPEntities())
{
var studentBasis = (from p in db.tbStudentBasis
where p.RecordStatus == decimal.One && p.StudentStatus == decimal.One
select p).ToList();
var teacherBasis = (from p in db.tbTeacherBasis
where p.RecordStatus == decimal.One
select p).ToList();
var gradBasis = (from p in db.tbGradeBasis
where p.RecordStatus == decimal.One
select p).ToList();
var classTypeBasis = (from p in db.tbClassType
where p.RecordStatus == decimal.One
select p).ToList();
var orgStudent = (from p in db.tbOrganizationStudent
where p.RecordStatus == decimal.One && p.tbStudentBasis.RecordStatus == decimal.One
&& p.tbStudentBasis.StudentStatus == decimal.One && p.tbOrganizationBasis.RecordStatus == decimal.One
&& p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
&& p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
select p).ToList();
var orgTeacher = (from p in db.tbOrganizationTeacher
where p.RecordStatus == decimal.One && p.tbTeacherBasis.RecordStatus == decimal.One
&& p.tbOrganizationBasis.RecordStatus == decimal.One && p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
&& p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
select p).ToList();
var orgMaster = (from p in db.tbOrganizationMaster
where p.RecordStatus == decimal.One && p.tbTeacherBasis.RecordStatus == decimal.One
&& p.tbOrganizationBasis.RecordStatus == decimal.One && p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
&& p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
select p).ToList();
var orgBasis = (from p in db.tbOrganizationBasis
where p.RecordStatus == decimal.One && p.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbYear.ID == this.DrplstYear1.YearId && p.tbGradeBasis.ID == this.DrplstGrade1.GradeId
select p).ToList();
var jobBasis = (from p in db.tbTeacherJob
where p.RecordStatus == decimal.One
select p).ToList();
var courseBasis = (from p in db.tbCourseBasis
where p.RecordStatus == decimal.One
select p).ToList();
var YearId = (from i in db.tbYear
where i.ID == (from p in db.tbYear
where p.RecordStatus == decimal.One && p.ID == this.DrplstYear1.YearId
select p.ParentID).FirstOrDefault()
select i.ParentID).FirstOrDefault();
var classBasis = (from p in db.tbClassBasis
where p.RecordStatus == decimal.One && p.tbYear.ID == YearId
select p).ToList();
var roomBasis = (from p in db.tbBuildRoom
where p.RecordStatus == decimal.One
select p).ToList();
var weekBasis = (from p in db.tbWeekBasis
where p.RecordStatus == decimal.One
select p).ToList();
var periodBasis = (from p in db.tbPeriodBasis
where p.RecordStatus == decimal.One
select p).ToList();
foreach (var t in tb)
{
if (!string.IsNullOrEmpty(t.StudentCode))
{
var tt = tb.Where(d => d.StudentCode == t.StudentCode && d.OrganizationName == t.OrganizationName && d.CourseName == t.CourseName).Count();
if (tt > decimal.One)
{
t.Remark = t.Remark + "该学号重复(" + tb.Where(d => d.StudentCode == t.StudentCode && d.OrganizationName == t.OrganizationName && d.CourseName == t.CourseName).Count() + "次);";
}
}
if (!string.IsNullOrEmpty(t.StudentCode))
{
var studentCode = (from p in studentBasis
where p.StudentCode == t.StudentCode
select p).FirstOrDefault();
if (studentCode == null)
{
t.Remark = t.Remark + "该学号不存在;";
}
}
if (!string.IsNullOrEmpty(t.StudentName))
{
var studentName = (from p in studentBasis
where p.StudentCode == t.StudentCode && p.StudentName == t.StudentName
select p).FirstOrDefault();
if (studentName == null)
{
t.Remark = t.Remark + "该学生学号与姓名不一致;";
}
}
if (!string.IsNullOrEmpty(t.TeacherName))
{
var teacher = (from p in teacherBasis
where p.TeacherName == t.TeacherName
select p).FirstOrDefault();
if (teacher == null)
{
t.Remark = t.Remark + "该教师名称不存在;";
}
}
if (!string.IsNullOrEmpty(t.ClassTypeName))
{
var classType = (from p in classTypeBasis
where p.TypeName == t.ClassTypeName
select p).FirstOrDefault();
if (classType == null)
{
t.Remark = t.Remark + "班级类型格式不正确;";
}
}
if (!string.IsNullOrEmpty(t.RoomName))
{
var room = (from p in roomBasis
where p.RoomName == t.RoomName
select p).FirstOrDefault();
if (room == null)
{
t.Remark = t.Remark + "教室信息不存在;";
}
}
if (!string.IsNullOrEmpty(t.SubjectName))
{
var subject = (from p in db.tbSubjectBasis
where p.SubjectName == t.SubjectName
select p).FirstOrDefault();
if (subject == null)
{
t.Remark += "科目信息不存在;";
}
}
if (!string.IsNullOrEmpty(t.CourseName))
{
var course = (from p in db.tbCourseBasis
where p.CourseName == t.CourseName
select p).ToList();
if (course.Count == decimal.Zero)
{
t.Remark += "模块信息不存在;";
}
if (course.Where(c => c.tbSubjectBasis.SubjectName == t.SubjectName).Count() == decimal.Zero)
{
t.Remark += "在【" + t.SubjectName + "】科目中没有该模块信息;";
}
}
if (!string.IsNullOrEmpty(t.StudentCode) && string.IsNullOrEmpty(t.StudentName))
{
t.Remark = t.Remark + "姓名为必填字段;";
}
if (string.IsNullOrEmpty(t.StudentCode) && !string.IsNullOrEmpty(t.StudentName))
{
t.Remark = t.Remark + "学号为必填字段;";
}
}
var t0 = tb.Where(c => c.Remark != string.Empty);
if (t0.Count() == decimal.Zero)
{
this.Save(db, studentBasis, teacherBasis, classTypeBasis, gradBasis, orgStudent, orgTeacher, orgMaster, orgBasis, classBasis, courseBasis, jobBasis, roomBasis, weekBasis, periodBasis, tb);
}
else
{
ShowMessage("EXCLE内容有错,请核对并修改后再重新上传!");
this.GvReport.DataSource = t0;
this.GvReport.DataBind();
}
}
}
}
}
catch (Exception e)
{
if (e.Message.Equals("外部表不是预期的格式。"))
{
var reader = XmlReader.Create(fileName);
var dt = new DataTable();
var row = 0;
var isColumn = false;
var col = 0;
while (reader.Read())
{
if (reader.Name == "Row" && reader.NodeType == XmlNodeType.Element)
{
row = row + 1;
col = 0;
if (row > 1)
{
var dr = dt.NewRow();
dt.Rows.Add(dr);
}
}
if (reader.Name == "Cell" && reader.NodeType == XmlNodeType.Element)
{
isColumn = true;
if (reader.HasAttributes && reader.GetAttribute("ss:Index") != null)
{
col = ConvertToInt(reader.GetAttribute("ss:Index"));
}
else
{
col = col + 1;
}
}
if (reader.NodeType == XmlNodeType.Text)
{
if (isColumn)
{
if (row == 1)
{
dt.Columns.Add(reader.Value);
isColumn = false;
}
else
{
dt.Rows[dt.Rows.Count - 1][col - 1] = reader.Value;
}
}
}
if (reader.Name == "Row" && reader.NodeType == XmlNodeType.EndElement && row == 1)
{
var dc = new DataColumn
{
DataType = Type.GetType("System.Boolean"),
DefaultValue = true,
ColumnName = "Status"
};
dt.Columns.Add(dc);
dt.Columns.Add("Remark");
}
if (reader.Name == "Table" && reader.NodeType == XmlNodeType.EndElement)
{
break;
}
}
reader.Close();
dt.AcceptChanges();
for (var i = 0; i < dt.Columns.Count; i++)
{
switch (dt.Columns[i].ColumnName)
{
case "学号":
dt.Columns[i].ColumnName = "StudentCode";
break;
case "姓名":
dt.Columns[i].ColumnName = "StudentName";
break;
case "科目名称"://
dt.Columns[i].ColumnName = "SubjectName";
break;
case "模块名称"://
dt.Columns[i].ColumnName = "CourseName";
break;
case "班级编号":
dt.Columns[i].ColumnName = "OrganizationNo";
break;
case "班级名称":
dt.Columns[i].ColumnName = "OrganizationName";
break;
case "座位号":
dt.Columns[i].ColumnName = "SeatNo";
break;
case "班级类型":
dt.Columns[i].ColumnName = "ClassTypeName";
break;
case "任课教师":
dt.Columns[i].ColumnName = "TeacherName";
break;
case "教室":
dt.Columns[i].ColumnName = "RoomName";
break;
case "星期":
dt.Columns[i].ColumnName = "WeekName";
break;
case "节次":
dt.Columns[i].ColumnName = "PeriodName";
break;
default:
break;
}
}
var list = new List<OrganizationBasis>();
var rows = dt.Select(string.Empty);
using (var db = new SMSPModel.SMSPEntities())
{
var studentBasis = (from p in db.tbStudentBasis
where p.RecordStatus == decimal.One && p.StudentStatus == decimal.One
select p).ToList();
var teacherBasis = (from p in db.tbTeacherBasis
where p.RecordStatus == decimal.One
select p).ToList();
var gradBasis = (from p in db.tbGradeBasis
where p.RecordStatus == decimal.One
select p).ToList();
var classTypeBasis = (from p in db.tbClassType
where p.RecordStatus == decimal.One
select p).ToList();
var orgStudent = (from p in db.tbOrganizationStudent
where p.RecordStatus == decimal.One && p.tbStudentBasis.RecordStatus == decimal.One && p.tbStudentBasis.StudentStatus == decimal.One
&& p.tbOrganizationBasis.RecordStatus == decimal.One && p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
select p).ToList();
var orgTeacher = (from p in db.tbOrganizationTeacher
where p.RecordStatus == decimal.One && p.tbTeacherBasis.RecordStatus == decimal.One
&& p.tbOrganizationBasis.RecordStatus == decimal.One && p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
select p).ToList();
var orgMaster = (from p in db.tbOrganizationMaster
where p.RecordStatus == decimal.One && p.tbTeacherBasis.RecordStatus == decimal.One
&& p.tbOrganizationBasis.RecordStatus == decimal.One && p.tbOrganizationBasis.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbOrganizationBasis.tbYear.ID == this.DrplstYear1.YearId
select p).ToList();
var orgBasis = (from p in db.tbOrganizationBasis
where p.RecordStatus == decimal.One && p.tbGradeBasis.ID == this.DrplstGrade1.GradeId
&& p.tbYear.ID == this.DrplstYear1.YearId
select p).ToList();
var jobBasis = (from p in db.tbTeacherJob
where p.RecordStatus == decimal.One
select p).ToList();
var courseBasis = (from p in db.tbCourseBasis
where p.RecordStatus == decimal.One
select p).ToList();
var classBasis = (from p in db.tbClassBasis
where p.RecordStatus == decimal.One
select p).ToList();
var roomBasis = (from p in db.tbBuildRoom
where p.RecordStatus == decimal.One
select p).ToList();
var weekBasis = (from p in db.tbWeekBasis
where p.RecordStatus == decimal.One
select p).ToList();
var periodBasis = (from p in db.tbPeriodBasis
where p.RecordStatus == decimal.One
select p).ToList();
foreach (var dr in rows)
{
var model = new OrganizationBasis
{
OrganizationName = dr["OrganizationName"].ToString(),
OrganizationNo = dr["OrganizationNo"].ToString(),
SeatNo = dr["SeatNo"].ToString(),
StudentCode = dr["StudentCode"].ToString(),
StudentName = dr["StudentName"].ToString(),
ClassTypeName = dr["ClassTypeName"].ToString(),
TeacherName = dr["TeacherName"].ToString(),
Remark = dr["Remark"].ToString(),
RoomName = dr["RoomName"].ToString(),
Status = (bool)dr["Status"],
SubjectName = dr["SubjectName"].ToString(),//
CourseName = dr["CourseName"].ToString(),//
//PeriodName =dr["PeriodName"].ToString(),
//WeekName=dr["WeekName"].ToString()
};
list.Add(model);
if (!string.IsNullOrEmpty(model.StudentCode))
{
var studentCode = (from p in studentBasis
where p.StudentCode == model.StudentCode
select p).FirstOrDefault();
if (studentCode == null)
{
model.Remark = model.Remark + "该学号不存在;";
}
}
if (!string.IsNullOrEmpty(model.StudentName))
{
var studentName = (from p in studentBasis
where p.StudentCode == model.StudentCode && p.StudentName == model.StudentName
select p).FirstOrDefault();
if (studentName == null)
{
model.Remark = model.Remark + "该学生学号与姓名不一致;";
}
}
if (!string.IsNullOrEmpty(model.TeacherName))
{
var teacher = (from p in teacherBasis
where p.TeacherName == model.TeacherName
select p).FirstOrDefault();
if (teacher == null)
{
model.Remark = model.Remark + "该教师名称不存在;";
}
}
if (!string.IsNullOrEmpty(model.ClassTypeName))
{
var classType = (from p in classTypeBasis
where p.TypeName == model.ClassTypeName
select p).FirstOrDefault();
if (classType == null)
{
model.Remark = model.Remark + "班级类型格式不正确;";
}
}
if (!string.IsNullOrEmpty(model.RoomName))
{
var room = (from p in roomBasis
where p.RoomName == model.RoomName
select p).FirstOrDefault();
if (room == null)
{
model.Remark = model.Remark + "教室信息不存在;";
}
}
if (!string.IsNullOrEmpty(model.SubjectName))
{
var subject = (from p in db.tbSubjectBasis
where p.SubjectName == model.SubjectName
select p).FirstOrDefault();
if (subject == null)
{
model.Remark += "科目信息不存在;";
}
}
if (!string.IsNullOrEmpty(model.CourseName))
{
var course = (from p in db.tbCourseBasis
where p.CourseName == model.CourseName
select p).ToList();
if (course.Count == decimal.Zero)
{
model.Remark += "模块信息不存在;";
}
if (course.Where(c => c.tbSubjectBasis.SubjectName == model.SubjectName).Count() == decimal.Zero)
{
model.Remark += "在【" + model.SubjectName + "】科目中没有该模块信息;";
}
}
if (!string.IsNullOrEmpty(model.StudentCode) && string.IsNullOrEmpty(model.StudentName))
{
model.Remark = model.Remark + "姓名为必填字段;";
}
if (string.IsNullOrEmpty(model.StudentCode) && !string.IsNullOrEmpty(model.StudentName))
{
model.Remark = model.Remark + "学号为必填字段;";
}
}
if (list.Count == decimal.Zero)
{
ShowMessage("EXCLE内容为空,请核对并修改后再重新上传!");
return;
}
foreach (var i in list)
{
if (!string.IsNullOrEmpty(i.StudentCode))
{
var tt = list.Where(d => d.StudentCode == i.StudentCode && d.OrganizationName == i.OrganizationName && d.CourseName == i.CourseName).Count();
if (tt > decimal.One)
{
i.Remark = i.Remark + "该学号重复(" + list.Where(d => d.StudentCode == i.StudentCode && d.OrganizationName == i.OrganizationName && d.CourseName == i.CourseName).Count() + "次);";
}
}
}
var tb = list.Where(c => c.Remark != string.Empty);
if (tb.Count() == decimal.Zero)
{
this.Save(db, studentBasis, teacherBasis, classTypeBasis, gradBasis, orgStudent, orgTeacher, orgMaster, orgBasis, classBasis, courseBasis, jobBasis, roomBasis, weekBasis, periodBasis, list);
}
else
{
ShowMessage("EXCLE内容有错,请核对并修改后再重新上传!");
this.GvReport.DataSource = tb;
this.GvReport.DataBind();
}
}
}
else
{
ShowMessage("您上传Excel文件表头结构或表头名称与系统不匹配,请核查后再次操作!(参考信息:" + e.Message + ")");
}
}
}
2,将数据写到数据库
protected void Save(SMSPModel.SMSPEntities db, List<SMSPModel.tbStudentBasis> studentBasis, List<SMSPModel.tbTeacherBasis> teacherBasis, List<SMSPModel.tbClassType> classTypeBasis, List<SMSPModel.tbGradeBasis> gradBasis, List<SMSPModel.tbOrganizationStudent> orgStudent, List<SMSPModel.tbOrganizationTeacher> orgTeacher, List<SMSPModel.tbOrganizationMaster> orgMaster, List<SMSPModel.tbOrganizationBasis> orgBasis, List<SMSPModel.tbClassBasis> classBasis, List<SMSPModel.tbCourseBasis> courseBasis, List<SMSPModel.tbTeacherJob> jobBasis, List<SMSPModel.tbBuildRoom> roomBasis, List<SMSPModel.tbWeekBasis> weekBasis, List<SMSPModel.tbPeriodBasis> periodBasis, List<OrganizationBasis> tb)
{
var arrangeCourseBasis = (from p in db.tbArrangeCourseBasis
where p.RecordStatus == decimal.One && p.ID == GuidDefault
select p).FirstOrDefault();
var year = (from p in db.tbYear
where p.RecordStatus == decimal.One && p.ID == this.DrplstYear1.YearId
select p).FirstOrDefault();
var grad = (from p in gradBasis
where p.ID == this.DrplstGrade1.GradeId
select p).FirstOrDefault();
var course = (from p in courseBasis
//where p.ID == this.DrplstCourse1.CourseId ----KEN's Mark
select p).FirstOrDefault();
var oldOrgStudent = (from p in orgStudent
select p).ToList();
var myOrg = (from p in tb.Where(d => !string.IsNullOrEmpty(d.OrganizationName))
select new
{
p.OrganizationName,
p.OrganizationNo,
p.ClassTypeName,
p.RoomName,
p.CourseName,//
p.SubjectName//
}).Distinct().ToList();
var Defaultclass = db.tbClassBasis.Where(d => d.RecordStatus == decimal.One && d.ID == GuidDefault).FirstOrDefault();
foreach (var c in myOrg)
{
var org = new SMSPModel.tbOrganizationBasis
{
ID = Guid.NewGuid(),
OrganizationNo = ConvertToDecimal(c.OrganizationNo),
OrganizationName = c.OrganizationName,
tbYear = year,
tbGradeBasis = grad,
tbCourseBasis = courseBasis.Where(o => o.CourseName == c.CourseName).FirstOrDefault(), //course,
tbBuildRoom = roomBasis.Where(d => d.RoomName == c.RoomName).FirstOrDefault() ?? roomBasis.Where(d => d.ID == GuidDefault).FirstOrDefault(),
tbClassBasis = Defaultclass,
tbTeacherJob = jobBasis.Where(d => d.ID == GuidDefault).FirstOrDefault(),
tbClassType = classTypeBasis.Where(d => d.TypeName == c.ClassTypeName).FirstOrDefault(),
tbArrangeCourseBasis = arrangeCourseBasis,
RecordStatus = decimal.One,
UpdateTime = DateTime.Now
};
db.AddTotbOrganizationBasis(org);
}
db.SaveChanges();
var newOrg = (from p in db.tbOrganizationBasis
where p.RecordStatus == decimal.One
&& p.tbYear.ID == this.DrplstYear1.YearId
select p).ToList();
foreach (var t in tb)
{
if (!string.IsNullOrEmpty(t.StudentCode) && !string.IsNullOrEmpty(t.StudentName))
{
var stu = new SMSPModel.tbOrganizationStudent
{
ID = Guid.NewGuid(),
tbOrganizationBasis = newOrg.Where(d => d.OrganizationName == t.OrganizationName && d.tbCourseBasis.CourseName == t.CourseName && d.tbCourseBasis.tbSubjectBasis.SubjectName == t.SubjectName).FirstOrDefault(),
SeatNo = t.SeatNo == null ? decimal.Zero : ConvertToDecimal(t.SeatNo),
tbStudentBasis = studentBasis.Where(d => d.StudentCode == t.StudentCode).FirstOrDefault(),
RecordStatus = decimal.One,
UpdateTime = DateTime.Now
};
db.AddTotbOrganizationStudent(stu);
}
}
var myTeacher = (from p in tb.Where(d => !string.IsNullOrEmpty(d.TeacherName))
select new
{
p.TeacherName,
p.OrganizationName
}).Distinct().ToList();
foreach (var mt in myTeacher)
{
var tea = new SMSPModel.tbOrganizationTeacher
{
ID = Guid.NewGuid(),
tbOrganizationBasis = newOrg.Where(d => d.OrganizationName == mt.OrganizationName).FirstOrDefault(),
tbTeacherBasis = teacherBasis.Where(d => d.TeacherName == mt.TeacherName).FirstOrDefault(),
RecordStatus = decimal.One,
UpdateTime = DateTime.Now
};
db.AddTotbOrganizationTeacher(tea);
}
var myArrangeCourse = (from p in tb.Where(d => !string.IsNullOrEmpty(d.WeekName) && !string.IsNullOrEmpty(d.PeriodName))
select new
{
p.OrganizationName,
p.WeekName,
p.PeriodName
}).Distinct().ToList();
foreach (var t in myArrangeCourse)
{
var te = new SMSPModel.tbArrangeCourseResult
{
ID = Guid.NewGuid(),
tbOrganizationBasis = newOrg.Where(d => d.OrganizationName == t.OrganizationName).FirstOrDefault(),
tbWeekBasis = weekBasis.Where(d => d.WeekName == t.WeekName).FirstOrDefault(),
tbPeriodBasis = periodBasis.Where(d => d.PeriodName == t.PeriodName).FirstOrDefault(),
RecordStatus = decimal.One,
UpdateTime = DateTime.Now
};
db.AddTotbArrangeCourseResult(te);
}
db.SaveChanges();
ShowMessage("教学班导入成功!");
}