鉴于您的excel文件与表具有相同的结构,并且您想要更新而不是仅插入表, 最简单的方法 是使用“合并”和“表值参数”
sqlCommand cmd = new sqlCommand(@"MERGE tStudent AS target
USING (select ID, STUDENT , ROLLNO from @source) as source
ON (source.ID = target.ID)
WHEN MATCHED THEN
UPDATE SET Student = source.Student,
ROLLNO = source.ROLLNO
WHEN NOT MATCHED THEN
INSERT (ID, STUDENT , ROLLNO)
VALUES (source.id, source.Student, source.RollNo);"
, sqlconn);
sqlParameter param cmd.Parameters.AddWithValue("@source", dr);
param.sqlDbType = sqlDbType.Structured;
param.TypeName = "dbo.tStudent";
您的其他选择包括循环,使用登台表,将数据作为xml数据或字符串数??据传递或使用ETL工具(如SSIS)。