① asp.net的問題,怎樣導入word文件中的試題數據到資料庫
前台:
<div style="text-align:center;">
上傳試題所屬類型:
<asp:DropDownList ID="ddlques_type" runat="server" Height="23px" Width="148px">
</asp:DropDownList><br/>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnShangChuan" runat="server" Text="開始上傳Word數據"
onclick="btnShangChuan_Click" Width="131px"/>
<asp:Label ID="lblText" runat="server" Text="*" ForeColor="#FF3300"></asp:Label>
注意:上傳文件後綴名為.doc或.docx的Word文件
</div>
後台:
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Word;
if (this.FileUpload1.FileName.Trim() == "")
{
this.lblText.Text = "請選擇要上傳Word文件!";
return;
}
//篩選合法文件
string fileName = this.FileUpload1.FileName;
string fileType = ".doc,.docx";
int dian = fileName.LastIndexOf('.');
string exten = fileName.Substring(dian);//得到後綴名
int IsHas = fileType.IndexOf(exten);//根據後綴名查找對比
if (IsHas == -1)//沒有找到對應的後綴名稱時
{
this.lblText.Text = "不允許上傳非法圖片!";
this.FileUpload1.Focus();
return;
}
else
{
object oMissing = System.Reflection.Missing.Value;
//打開文檔
Microsoft.Office.Interop.Word._Application oWord = null;
Microsoft.Office.Interop.Word._Document oDoc = null;//記錄word打開的文檔
oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = false;
//得到絕對的路徑
//string path = this.FileUpload1.PostedFile.FileName;//IE問題,現只有IE6能得到全路徑
object path = @"E:\" + FileUpload1.FileName; //暫時取的死路徑
//打開文檔
oDoc = oWord.Documents.Open(ref path,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
object unknow = Type.Missing;
object saveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdPromptToSaveChanges;
OnlineExam exam = null;
List<OnlineExam> list = new List<OnlineExam>();
for (int i = 1; i < oDoc.Paragraphs.Count; i++)
{
if (i == 1 || i % 6 == 1)//題目
{
exam = new OnlineExam();
exam.Content = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim());
}
if (i == 2 || i % 6 == 2)//答案A
{
exam.Ques_key_a = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim().Replace("A.",""));
}
if (i == 3 || i % 6 == 3)//答案B
{
exam.Ques_key_b = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim().Replace("B.", ""));
}
if (i == 4 || i % 6 == 4)//答案C
{
exam.Ques_key_c = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim().Replace("C.", ""));
}
if (i == 5 || i % 6 == 5)//答案D
{
exam.Ques_key_d = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim().Replace("D.", ""));
}
if (i == 6 || i % 6 == 0)//正確答案
{
string correctKey = Convert.ToString(oDoc.Paragraphs[i].Range.Text.Trim());
int indexof = correctKey.IndexOf(":");
if (indexof < 0)
{
//關閉word文檔
oWord.ActiveDocument.Close(ref saveChanges, ref unknow, ref unknow);
//關閉word程序
oWord.Quit(ref saveChanges, ref unknow, ref unknow);
this.lblText.Text = "第" + i/6 + "題附近,試題文檔標准格式有誤,請檢查!";
return;
}
string correctKey2 = correctKey.Substring(indexof + 1, correctKey.Length - (indexof + 1));
exam.Ques_correctKey = correctKey2;
if (correctKey2.Split(',').Length > 1)
{
exam.Ques_check_type = 1;//多選
}
else
{
exam.Ques_check_type = 0;//單選
}
list.Add(exam);
}
}
if (list.Count > 0)
{
questions_info questions = null;
for (int i = 0; i < list.Count; i++)
{
questions = new questions_info();
questions.ques_typeId = Convert.ToInt32(ddlques_type.SelectedValue);
questions.ques_check_type = Convert.ToInt32(list[i].Ques_check_type);
questions.ques_registTime = DateTime.Now;
questions.content = list[i].Content;
questions.ques_key_a = list[i].Ques_key_a;
questions.ques_key_b = list[i].Ques_key_b;
questions.ques_key_c = list[i].Ques_key_c;
questions.ques_key_d = list[i].Ques_key_d;
questions.ques_correctKey = list[i].Ques_correctKey;
examManageBll.InsertIntoQuestions(questions);
}
this.lblText.Text = "上傳成功!";
}
if (list.Count == 0)
{
this.lblText.Text = "文檔格式標准有誤,請檢查!";
}
//關閉word文檔
oWord.ActiveDocument.Close(ref saveChanges, ref unknow, ref unknow);
//關閉word程序
oWord.Quit(ref saveChanges, ref unknow, ref unknow);
}
//文檔是一行一行讀的,不清楚還有沒有更好的方法
② 我用excel編寫的試題,怎麼把它變成資料庫,方便查詢試題和編寫試卷呢
如果您使用的是Access資料庫:
打開Access>新建空白資料庫(或已有的資料庫)>外部數據>Excel>選擇excel編寫的試題文件>確定
如果您使用的是sql Server:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
注:將"c:/book1.xls"替換為excel編寫的試題文件名;
將Sheet1替換為excel編寫的試題文件的表單名.
③ 如何批量把試題導入資料庫(access)
http://www.binghebbs.cn/thread-12274-1-1.html
給個連接你 上面寫的非常的詳細。
這個是方法2 也是那個地址上的 方法有圖片 你還是自己上去看把。
用 Schema.ini 文件也可以達到要求。
作用:Schema.ini用於提供文本文件中記錄的構架信息。每個 Schema.ini 項都用於指定表的五個特徵之一:
1、文本文件名
2、文件格式
3、欄位名、欄位長度、欄位類型
4、字元集
5、特別數據類型轉換
指定文件名
文件名要用方括弧括起來,例如如果要對 Sample.txt 使用數據構架信息文件,那麼它的對應的項應該是
[Sample.txt]
指定文件格式
格式說明
[/td]
[td=1,1,50%]
表格式
[/td]
[td=1,1,35%]
Schema.ini 格式描述
Tab 製表符分隔 文件中的欄位用製表符分隔 Format=TabDelimited
CSV 分隔 文件中的欄位用逗號來分隔 Format=CSVDelimited
自定義分隔 文件中的欄位可以用任何字元來分隔,所有的字元都可以用來分隔,包括空格,但是雙引號 ( " ) 除外 Format=Delimited(自定義分隔符)
- 或者沒有分隔符 -
Format=Delimited( )
固定寬度 文件中的欄位為固定長度 cg1留言,經測試,參數為:Format=FixedLength
指定欄位
你可以有兩種方法在一個字元分隔的文本文件中指定欄位名
1、在文本文件中的第一行包含欄位名,並且設置 ColNameHeader 為 True 。
2、用數字編號指定每一列並且指定每一列的名字以及數據類型
你必須用數字編號指定每一列並且指定每一列的名字、數據類型以及長度(在固定長度分隔的文本文件中需要指定長度)
注意,設定了 ColNameHeader 選項,在 Schema.ini 中 Windows 注冊時會忽略 FirstRowHasNames 選項。
你也可以指定欄位的數據類型,使用 MaxScanRows 選項用來指定在確定列的數據類型時要掃描多少行數據。設置 MaxScanRows 為 0 將掃描整個文件。
如果文本文件第一行包含欄位名,並且要掃描整個文件,改項目就要定義如下:
ColNameHeader=True
MaxScanRows=0
接下來的項目用來指定表中的欄位,使用列編號(Coln)選項來指定列。欄位長度在「固定分隔文本文件中」是必填項目,在「字元分隔文本文件」中是可選項目。
示例:定義 2 個欄位,CustomerNumber 是長度為 10 的文本欄位、CustomerName 是長度為 30 的文本欄位。
Col1=CustomerNumber Text Width 10
Col2=CustomerName Text Width 30
語法如下:
Coln=ColumnName type [Width #]
參數解釋如下:
參數 說明
ColumnName 文本,標識欄位名,如果包含空格要用雙引號括起來
type 數據類型包括:
Microsoft Jet 數據類型:Bit Byte Short Long Currency Single Double DateTime Text Memo
ODBC 數據類型: Char (same as Text) Float (same as Double) Integer (same as Short) LongChar (same as Memo) Date date format
其中date format 是日期的格式字元串例如:Date YYYY-MM-DD
Width 字元串的長度,後面的數字用來指定欄位的長度(「固定分隔文本文件」為必填,「文字分隔文本文件」為可選)
# 整形數字,標識欄位長度
指定字元集
CharacterSet 項有兩個選擇:ANSI | OEM
選擇 ANSI 字元集用如下方法:
CharacterSet=ANSI
④ Word試題導入資料庫,用C#語言,謝謝各位
WORD沒試過TXT的倒是試過
不是因為你用WORD導入資料庫的話導出的時候會有問題
⑤ 在線考試系統題庫怎麼導入資料庫
請件下方圖片,3步走,可以完成試題的導入。
⑥ web 在線考試系統的生成試卷的模板在哪兒弄啊還有怎麼將試題導入到mysql中,謝謝
可以將試卷內容構造成一個xml文件,或者是文本文件格式當然是固定的最好,然後進行解析放到自己事先構造好的model里,然後將這個model構造出sql語句,寫入即可。
至於模版嘛,可以到網上搜一些相關的在線考試系統,然後模擬做一個就行啦~
⑦ vb自動組卷系統 將word文檔的試題導入到access資料庫中形成試題庫
先保存為文本文件,然後按向導指引的步驟導入即可。
⑧ asp+sqlserver做考試系統,題干與選項分為兩個表,請問如何將excel試題導入到資料庫!
題干一個表,欄位是:題干ID,題目,答案ID
選項一個表,欄位是:選項ID,選項內容,所屬題目ID,
在做代碼的時候,根據題干編號SELECT相應的選項進行顯示
在驗證答案是否正確時,根據所選答案的ID與題幹上標識的ID是否一致進行判斷
導入EXCEL時,如果你從後台直接導入EXCEL表,就要把題乾和選項分開到兩個SHEET中,並把數據按資料庫的格式進行整理。
然後選擇資料庫,右鍵屬性,導入數據,上面有選擇數據源,選Microsoft excel那個,然後選擇你的表格,下一步,最後選定你要導到這個表的數據的那個SHEET,指定導到哪個數據表中。就可以了。
不知道是不是這個意思。希望對你有幫助。
⑨ java 考試系統怎麼導入試題
沒有真正的做過,不過看別人寫的,感覺能實現
http://blog.csdn.net/xiyushiyi/article/details/41519235
⑩ 怎樣用C#寫一個把大量選擇題導入到資料庫(SQL Server)表(欄位ID,QuestionsID,A,B,C,D,Results )中
沒什麼好辦法,一個個錄
或者在excel中把一個題數據作成一行,和資料庫的欄位對應,然後導入或者復制粘貼