將word文件資料匯入到sql server資料庫中
阿新 • • 發佈:2018-12-19
我現在的需求是這樣的,需要將這些題目插入到sql server資料庫中。
並且要對應起來,一開始在網上找了很多方法,都沒有找到合適的。
後面感覺,還是自己寫一個比較好,因為只有自己寫的,才是最適合你的!
於是就開始倒騰。
1、首先是讀取word中的資料,在我上一篇部落格中有相關的方式。
2、主要步驟
(1)將word文件整理成你想要的樣子
(2)通過字串分隔生成陣列
(3)將題目陣列、選項陣列對應起來拼接sql,並執行sql
3、具體操作
(1)整理word
下面是我整理題庫後整理完成的兩份word
連結:https://pan.baidu.com/s/1k7OpLNKTpOp3wR9gYMbLkg 提取碼:er0g (2)在資料庫中建好如圖所示的表(表名:tb_radio)
(3)開啟vs,新建一個控制檯專案,在App.config中配置你的資料庫連線,main()函式中的程式碼如下
#region 獲取標題陣列 //載入Word文件 Document docTitle = new Document(); docTitle.LoadFromFile("C:/Users/承蒙時光不棄/Desktop/題目.doc"); //使用GetText方法獲取文件中的所有文字 string titleStr = docTitle.GetText(); string[] titleArr = titleStr.Split(new string[] { "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "11.", "12.", "13.", "14.", "15.", "16.", "17.", "18.", "19.", "20.", "21.", "22.", "23.", "24.", "25.", "26.", "27.", "28.", "29.", "30.", "31.", "32.", "33.", "34.", "35.", "36.", "37.", "38.", "39.", "40.", "41.", "42.", "43.", "44.", "45.", "46.", "47.", "48.", "49.", "50.", }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine(titleArr.Length); //for (int i = 0; i < titleArr.Length; i++) //{ // Console.WriteLine(titleArr[i].Trim()); // Console.WriteLine("------------------------------------------------------"); //} #endregion #region 獲取選項陣列 //載入選項文件 string[,] xuanXiangArr2 = new string[70, 4]; Document docXuanXiang = new Document(); docXuanXiang.LoadFromFile("C:/Users/承蒙時光不棄/Desktop/答案.doc"); string xuanXiangStr1 = docXuanXiang.GetText(); string[] xuanXiangArr1 = xuanXiangStr1.Split(new string[] { "A." }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("選項共有:" + xuanXiangArr1.Length); string[] temp; for(int i = 0; i < xuanXiangArr1.Length; i++) { temp=xuanXiangArr1[i].Split(new string[] { "B.","C.","D." }, StringSplitOptions.RemoveEmptyEntries); for(int j = 0; j < temp.Length; j++) { xuanXiangArr2[i, j] = temp[j]; //Console.WriteLine(xuanXiangArr2[i, j].Trim()); } //Console.WriteLine("------------------------------------------------------"); } #endregion //拼接sql語句並執行 string title; string A; string B; string C; string D; string sql; for(int i = 0; i < xuanXiangArr1.Length; i++) { title = titleArr[i].Trim(); A = xuanXiangArr2[i, 0].Trim(); B = xuanXiangArr2[i, 1].Trim(); C = xuanXiangArr2[i, 2]==null?"null":xuanXiangArr2[i,2].Trim(); D = xuanXiangArr2[i, 3] == null ? "null" : xuanXiangArr2[i, 3].Trim(); if (C == "null" && D == "null") { sql = "insert into tb_radio(Title, A, B) values('"+title+"', '"+A+"', '"+B+"')"; SqlHelper.ExecuteNonQuery(sql, System.Data.CommandType.Text); } else if (C!="null"&&D == "null") { sql = "insert into tb_radio(Title, A, B, C) values('" + title + "', '" + A + "', '" + B + "', '"+C+"')"; SqlHelper.ExecuteNonQuery(sql, System.Data.CommandType.Text); } else if (C != "null" && D != "null") { sql = "insert into tb_radio(Title, A, B, C, D) values('" + title + "', '" + A + "', '" + B + "', '" + C + "', '" + D + "')"; SqlHelper.ExecuteNonQuery(sql, System.Data.CommandType.Text); } Console.WriteLine("插入一條記錄成功"+(i+1)); }
上面執行sql時用到了我自己封裝的SqlHelper,這裡也一併提供給大家。
連結:https://pan.baidu.com/s/1fOu8m4soC-wHcrWruSrJKg 提取碼:bwob
(4)執行程式碼,資料插入成功!