我的一个程序,操作EXCEL将其插入数据库中,采用逐单元格的方式,有索引超出了数组界限错误!求高手解决!
程序如下:
private void Button1_Click(object sender, System.EventArgs e)
{
         Excel.Workbooks wbs = null;
Excel.Workbook wb = null;
Excel.Worksheet ws = null;
Excel.Range range = null;

Excel.ApplicationClass excel=new Excel.ApplicationClass(); 
          
object Nothing=System.Reflection.Missing.Value;
excel.Application.Workbooks.Open(@"C:\Documents and Settings\lwq\MyDocuments\newexcel.xls",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing);
 
wbs = excel.Workbooks;
wb = wbs[1];
ws = (Excel.Worksheet)wb.Worksheets["Sheet1"];
int rowCount = ws.UsedRange.Rows.Count; //取行
int colCount = ws.UsedRange.Columns.Count; // 取列
           string strconn="server=(local);uid=sa;pwd=sa;database=test";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
String SqlCmd = "INSERT INTO testtable(题型,基本类型,知识点,难度,分数,题目内容,供选答案,标准答案) VALUES (@type,@basetype,@contentpoint,@difficulty,@score,@content,@chooseanswer,@answer)"; 
SqlCommand CmdObj = new SqlCommand(SqlCmd,conn);
object[,] temp = new object[rowCount,colCount];
range = ws.get_Range("A1", Nothing);
range = range.get_Resize(rowCount,colCount);
for(int i=0;i<rowCount*colCount;i++)
         temp=(object[,])range.Value;
for(int i=0;i<=rowCount-1;i++)
{
CmdObj.Parameters.Add("@type",SqlDbType.Char,10);
CmdObj.Parameters["@type"].Value=temp[i,0];
CmdObj.Parameters.Add("@basetype",SqlDbType.Char,10);
CmdObj.Parameters["@basetype"].Value=temp[i,1];
CmdObj.Parameters.Add("@contentpoint",SqlDbType.Char,10);
CmdObj.Parameters["@contentpoint"].Value=temp[i,2];
CmdObj.Parameters.Add("@difficulty",SqlDbType.Char,10);
CmdObj.Parameters["@difficulty"].Value=temp[i,3];
CmdObj.Parameters.Add("@score",SqlDbType.Char,10);
CmdObj.Parameters["@score"].Value=temp[i,4];
CmdObj.Parameters.Add("@content",SqlDbType.NVarChar,500);
CmdObj.Parameters["@content"].Value=temp[i,5];
CmdObj.Parameters.Add("@chooseanswer",SqlDbType.NVarChar,500);
CmdObj.Parameters["@chooseanswer"].Value=temp[i,6];
CmdObj.Parameters.Add("@answer",SqlDbType.NVarChar,500);
CmdObj.Parameters["@answer"].Value=temp[i,7]; CmdObj.ExecuteNonQuery(); }
conn.Close();

excel.Application.Workbooks.Close();
excel.Application.Quit();
excel.Quit();
数据库中的表字段为题型,基本类型,知识点,难度,分数,题目内容,供选答案,标准答案。字段类型在程序中没错!望高手不吝赐教!!!