/// <summary>
/// 把内存中的信息插入到Execl的Sheet表中
/// </summary>
/// <param name="Name"></param>
/// <param name="conn"></param>
/// <param name="TableColumnNames"></param>
/// <param name="SheetTableColumnNames"></param>
/// <returns></returns>
public void InsertToTable(string Name, string conn, DataTable TableColumnNames, List<string> SheetTableColumnNames)
{
string temp = " insert into [" + Name + "](";
string temps = "";
string tempe = "";
OleDbParameter[] param = new OleDbParameter[SheetTableColumnNames.Count];
foreach (DataRow dr in TableColumnNames.Rows)
{
for (int t = 0; t < SheetTableColumnNames.Count; t++)
{
if (t == 0)
{
temps = "[" + SheetTableColumnNames[t] + "]";
tempe = "@" + TableColumnNames.Columns[t].ColumnName;
}
else
{
temps = temps + ",[" + SheetTableColumnNames[t] + "]";
tempe = tempe + ",@" + TableColumnNames.Columns[t].ColumnName;
}
}
}
temp = temp + temps + ") values (" + tempe + ")";
for (int b = 0; b < SheetTableColumnNames.Count; b++)
{
param[b] = new OleDbParameter("@" + TableColumnNames.Columns[b].ColumnName, OleDbType.VarChar, 255);
param[b].SourceColumn = TableColumnNames.Columns[b].ColumnName;
}
try
{
using (OleDbConnection oledbconnection = new OleDbConnection(conn))
{
oledbconnection.Open();
OleDbCommand oledbcommand = new OleDbCommand();
oledbcommand.Connection = oledbconnection;
oledbcommand.CommandType = CommandType.Text;
oledbcommand.CommandText = temp;
foreach (OleDbParameter p in param)
oledbcommand.Parameters.Add(p);
OleDbDataAdapter adp = new OleDbDataAdapter();
OleDbCommandBuilder cb = new OleDbCommandBuilder(adp);
DataSet ds = new DataSet();
adp.SelectCommand = oledbcommand;
adp.InsertCommand = oledbcommand;
int i = adp.Update(TableColumnNames);
oledbconnection.Close();
}
}
catch (Exception)
{
throw;
}
}
excel导出问题 ·····下面这个方法哪不对?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2016-10-21 07:11关注
oledb只能读excel不能写,用npoi这个库去写excel
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测