2个sheet分别导到2张表里.sheet里的字段顺序和表里的字段顺序是一样的.
解决方案 »
- 网页弹框后,排版出现问题,求解决方法
- 请好心人总结asp.net前台验证正则表达式
- 用Jquery为什么取到.net的Checkbox的值始终都是选中呢
- 请教高手
- asp.net CMS 问题。大家一起讨论。
- 100分 谁对就给谁~~~~~~~~~~~~~~~~~~~~
- .net中如何实现点击一条记录,跳转到它的详细信息?
- 这个ascx 能写成 razor Partial局部视图吗
- C1FlexGrid控件只能复制,不能修改。该控件和DataGrid类似 注意是winform
- "相关新闻"功能是如何实现的?
- 关于获取gridview中的某一列的值 放到textbox中 谢谢~~~
- 后台获取数据如何绑定到客户端控件<select>里面呢
{ string strCon, strCmm, strCmm1;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
OleDbConnection oleCnn = new OleDbConnection(strCon);
oleCnn.Open();
strCmm = "select TestID,SerID,PreChoiceNumber,PostChoiceNumber from [Sheet1$]";
strCmm1 = "select TestID,ChoiceNumber,Label,Description from [Sheet2$]";
OleDbCommand oleCmm = new OleDbCommand(strCmm, oleCnn);
OleDbCommand oleCmm1= new OleDbCommand(strCmm1, oleCnn);
OleDbDataAdapter oleDa = new OleDbDataAdapter(oleCmm);
OleDbDataAdapter oleDa1 = new OleDbDataAdapter(oleCmm1);
DataSet ds = new DataSet();
DataSet ds1 = new DataSet(); //oleDa.Fill(ds, "[Sheet1$]");
oleDa.Fill(ds,"[Sheet1$]");
oleDa1.Fill(ds1,"[Sheet2$]");
oleCnn.Close(); //GridView1.DataSource = ds;
//GridView2.DataSource = ds1;
// GridView1.DataBind();
// GridView2.DataBind();
return ds;
return ds1;
} public void DataTableInsertRespCalcDB(DataSet ds, string testid,DataSet ds1)
{
SqlConnection conn = null;
conn = DBUtil.creatConnection();
//SqlTransaction tran = null; if (testid == ds.Tables[0].Rows[0].ItemArray[0].ToString())
{
try
{
conn.Open();
// tran = conn.BeginTransaction(); DataTable dataTable1 = new DataTable();
SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT * FROM RespCalc", conn);
DataTable dataTable2 = new DataTable();
SqlDataAdapter sqlDA2 = new SqlDataAdapter(@"SELECT * FROM Choice", conn);
SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
sqlDA1.Fill(dataTable1);
SqlCommandBuilder sqlCB2 = new SqlCommandBuilder(sqlDA2);
sqlDA2.Fill(dataTable2);
foreach (DataRow dataRow in ds.Tables[0].Rows)
{
//int len = dataRow.ItemArray.Length;
//Logger.Log("The Length is " + len);
//for (int i = 0; i < len; i++)
//{
// Logger.Log("Item " + i + dataRow.ItemArray[i]);
//} DataRow dataRow1 = dataTable1.NewRow();
dataRow1["TestID"] = testid;
dataRow1["SerID"] = dataRow[1];
dataRow1["PreChoiceNumber"] = dataRow[2];
dataRow1["PostChoiceNumber"] = dataRow[3];
dataTable1.Rows.Add(dataRow1);
} foreach (DataRow dataRow1 in ds1.Tables[0].Rows)//这里有问题.
{
DataRow dataRow2 = dataTable2.NewRow();
dataRow2["TestID"] = testid;
dataRow2["ChoiceNumber"] = dataRow1[1];
dataRow2["Label"] = dataRow1[2];
dataRow2["Description"] = dataRow1[3];
dataTable2.Rows.Add(dataRow2);
}
// sqlDA2.InsertCommand.Transaction = tran;
// sqlDA1.InsertCommand.Transaction = tran;
sqlDA1.Update(dataTable1);
sqlDA2.Update(dataTable2);
}
catch (Exception ex)
{
// tran.Rollback();
Logger.Error("", ex);
throw ex;
}
finally
{
conn.Close();
} }
else
{
Label1.Text = "<script language=javascript>alert('TestID not match.');</script>";
}
}
我写的这段到是可以把数据传到数据库里,可是将SHEET1的数据上上传到了2张表里.而sheet2的数据没拿到.
return ds1; 你写了两个return,ds1当然没有办法返回咯 - -#
子程序内 能返回两个return吗 这个程序也不应该是这样编的 .....