C# excel导入数据

u013776299 2014-02-25 04:33:38
运行时报错:Microsoft Office Access 数据库引擎找不到对象“@NAME”。请确定该对象存在,并正确瓶邪其名称和路径名。 求高手帮忙

private void Btn_导入_Click(object sender, EventArgs e)
{
if (gridResult == null) return;
// gridResult.Init(bga.db);
gridResult.CurrentDataSet.Tables[0].Clear();//清空数据
DataTable dt_result=gridResult.CurrentDataSet.Tables[0].Clone();
OleDbConnection conn = null;
DataTable dt = new DataTable();
string connectionString = string.Empty;
string filepath = GetStr();
string strSheetName = "";
if (filepath != "" || filepath.Length > 0)
{
try
{
conn = new OleDbConnection(filepath);
conn.Open();
System.Data.DataTable dtTemp = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null});
strSheetName = dtTemp.Rows[0][2].ToString().Trim();
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [@NAME]", conn);
OleDbParameter p = new OleDbParameter();
p.ParameterName = "NAME";
p.OleDbType = OleDbType.VarChar;
p.Value = strSheetName;
oada.SelectCommand.Parameters.Add(p);
oada.Fill(dt);
conn.Close();
int num = 0;
for (int i = 0; i < gridResult.GetGridView.Columns.Count; i++)
{
if (gridResult.GetGridView.Columns[i].Visible == true)
{
num++;

}

}
if (dt.Columns.Count != num)
{
XtraMessageBox.Show("导入的Excel数据与数据框不匹配,请重新导入!", "提示");
return;
}
FillDate(dt);


XControl.bga_grid.gridResult = null;
this.Dispose();
this.Close();

}
catch (Exception ex)
{

XtraMessageBox.Show(ex.Message+" 请重新选择Excel版本");
return;
}

}


}
...全文
327 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我是导入sql server 应该语法是一样的 先导入npoi 具体可以密我 我给你发源码
tinyhooo 2014-02-27
  • 打赏
  • 举报
回复
输入参数不是这么用的。你把表名直接通过拼接字符串的方式给它。
东北大亨 2014-02-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/northeastTycoon/archive/2012/09/13/2683034.html
东北大亨 2014-02-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/northeasttycoon(推荐用NPOI导出excel)
u013776299 2014-02-26
  • 打赏
  • 举报
回复
access保留关键字 要如何改呢,求教
飞扬人生 2014-02-25
  • 打赏
  • 举报
回复
access保留关键字
u013776299 2014-02-25
  • 打赏
  • 举报
回复
直接传的话,就会提示不存在这个NAME名称
水猿兵团五哥 2014-02-25
  • 打赏
  • 举报
回复

  OleDbDataAdapter oada = new OleDbDataAdapter("select * from [@NAME]", conn);
直接改成这样得了,name传进来好了

  OleDbDataAdapter oada = new OleDbDataAdapter("select * from "+NAME, conn);

110,531

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧