今日在导入Excel后要生成一张表,将Excel表内容转化为数据库中表内容时使用到System.Data.SqlClient.SqlBulkCopy这个类的对象,其中有个ColumnMapping.Add的对象方法,view plaincopy to clipboardprint?
/***** Excel导入 *****/
private void PapperImport(string name)
{
string Tablename = name.Remove(name.IndexOf("."));
Tablename = Tablename.Substring(name.LastIndexOf("//") + 1);
string sql = "select ObjectProperty(Object_ID( '" + Tablename + "'),'IsUserTable')"; //判断是否存在某张表的sql语句。
if (new DataBase().GetDataSetSql(sql).Tables[0].Rows[0][0].ToString() == "")
{
//创建Excel连接
//连接字符串
string strConn = "Provider =Microsoft.Jet.OLEDB.4.0; Data Source = " + name + "; Extended Properties='Excel 8.0; HDR = YES';";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = "select * from [Sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
DataTable dt = new DataTable();
myCommand.Fill(dt);
conn.Close();
//===导入到datatable完毕========================
//========生成数据库表==========
sql = "use MyOnlineExam create table " + Tablename + "(题号 int primary Key, 题干 varchar(500), A varchar(500), B varchar(500), C varchar(500), D varchar(500), 学生选择答案 char(2),正确答案 char(2), 学号 varcha
给定的 ColumnMapping 与源或目标中的任意列均不匹配 与 从bcp 客户端收到的列长度无效 从excel导入SqlServer
最新推荐文章于 2020-12-14 17:20:27 发布
在尝试使用System.Data.SqlClient.SqlBulkCopy将Excel数据导入SQLServer时,遇到了'给定的 ColumnMapping 与源或目标中的任意列均不匹配'和'从bcp 客户端收到的列长度无效'的错误。解决方案是确保ColumnMappings正确映射,并调整目标表的字段长度以适应源数据。通过修改创建表的SQL语句,将字段类型和长度设置为适合Excel数据的格式,成功解决了问题。
摘要由CSDN通过智能技术生成