在VS.NET2005的C#中把EXCEL2003的数据导入SQL-SERVER2000的问题? (急!!!!!!)

aydh696 2006-07-23 02:16:53
在VS.NET2005的C#中把EXCEL2003的数据导入SQL-SERVER2000的问题,提示找不到可安装的 ISAM,代码如下:
try
{
System.Data.OleDb.OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.xls;Extended Properties=""Excel 11.0;HDR=Yes;IMEX=1""");
conn.Open();
System.Data.OleDb.OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM [1$]";
System.Data.OleDb.OleDbDataReader rdr = cmd.ExecuteReader();
DataSet dataSet11 = new DataSet();
while (rdr.Read())
{

}
rdr.Close();
conn.Close();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}

如果把Excel 11.0改成Excel 8.0的话,提示错误信息是"不是预期的格式"
请问各位大侠如何解决?不胜感激!!
...全文
356 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fds2003 2006-08-29
  • 打赏
  • 举报
回复
看下你的EXCEL有没有问题!
fengyeng 2006-08-29
  • 打赏
  • 举报
回复
mark
zhangxunyxq 2006-08-29
  • 打赏
  • 举报
回复
我这便有源代码。QQ:362190192
Dong 2006-08-29
  • 打赏
  • 举报
回复
(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.xls;Extended Properties=""Excel 11.0;HDR=Yes;IMEX=1""");
连接字符串后面少了';',连接后面的最后是有分号的
改为
(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.xls;Extended Properties='Excel 11.0;HDR=Yes;IMEX=1';");

试试看
huangbznet 2006-08-28
  • 打赏
  • 举报
回复
private void Button1_Click(object sender, System.EventArgs e)
{
string FileName=System.IO.Path.GetFileName(File1.PostedFile.FileName);
LblFileName.Text=FileName;
int i ;
string newext;
i=LblFileName.Text.LastIndexOf(".");
if(this.File1.Value=="")
Response.Write("<script language=javascript>alert('请先选择你要的文件!!!');</script>");
else
{
if(i==-1)
Response.Write("<script language=javascript>alert('BUG!!!');</script>");
newext=LblFileName.Text.Substring(i);
if(newext==".xls")
{
DateTime now = DateTime.Now;
string newname=now.ToShortDateString()+" "+now.ToLongTimeString();
this.LblPath.Text="excel/"+newname.Replace(":","")+FileName;
File1.PostedFile.SaveAs(Server.MapPath(LblPath.Text));

this.BindGrid();
try
{}
catch
{
Response.Write("<script language=javascript>alert('请在EXCEL里面输入正确的格式后再上传!!!');</script>");
}
}
else
{
Response.Write("<script language=javascript>alert('请先选择EXCEL文件!!!');</script>");
}
}
}

以下是创建一个DATATABLE的函数的代码主要代码
DataTable mydt = new DataTable();
mydt.Columns.Add("姓名",typeof(System.String ));
mydt.Columns.Add("性别",typeof(System.String ));
mydt.Columns.Add("出生年月",typeof(System.String));
mydt.Columns.Add("工作部门",typeof(System.String));
mydt.Columns.Add("职务",typeof(System.String));
mydt.Columns.Add("职称",typeof(System.String));
mydt.Columns.Add("分库",typeof(System.String));
mydt.Columns.Add("类别",typeof(System.String));
mydt.Columns.Add("专业",typeof(System.String));
mydt.Columns.Add("联系电话",typeof(System.String));

string strConn;
strConn = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath(LblPath.Text) +";Extended Properties=Excel 8.0;";
oledbcon = new OleDbConnection (strConn);
oledbcon.Open();
oledbcom = new OleDbCommand ("SELECT * FROM [Sheet1$]", oledbcon);
oledbdr = oledbcom.ExecuteReader(CommandBehavior.CloseConnection);

while (oledbdr.Read())
{
DataRow dtrow = mydt.NewRow();
if(oledbdr[0] == DBNull.Value)
dtrow[0] = DBNull.Value;
else
dtrow[0] = Convert.ToString(oledbdr[0]);
if(oledbdr[1] == DBNull.Value)
dtrow[1] = DBNull.Value;
else
dtrow[1]=Convert.ToString(oledbdr[1]);
if(oledbdr[2] == DBNull.Value)
dtrow[2] = DBNull.Value;
else
dtrow[2]=Convert.ToString(oledbdr[2]);
if(oledbdr[3] == DBNull.Value)
dtrow[3] = DBNull.Value;
else
dtrow[3]=Convert.ToString(oledbdr[3]);
if(oledbdr[4] == DBNull.Value)
dtrow[4] = DBNull.Value;
else
dtrow[4] = Convert.ToString(oledbdr[4]);
if(oledbdr[5] == DBNull.Value)
dtrow[5] = DBNull.Value;
else
dtrow[5] = Convert.ToString(oledbdr[5]);
if(oledbdr[6] == DBNull.Value)
dtrow[6] = DBNull.Value;
else
dtrow[6] = Convert.ToString(oledbdr[6]);
if(oledbdr[7] == DBNull.Value)
dtrow[7] = DBNull.Value;
else
dtrow[7] = Convert.ToString(oledbdr[7]);
if(oledbdr[8] == DBNull.Value)
dtrow[8] = DBNull.Value;
else
dtrow[8] = Convert.ToString(oledbdr[8]);
if(oledbdr[9] == DBNull.Value)
dtrow[9] = DBNull.Value;
else
dtrow[9] = Convert.ToString(oledbdr[9]);

mydt.Rows.Add(dtrow);
}
return mydt;

}

以上是2003的导入的代码主要代码,可以实现导入功能
benxiong 2006-08-28
  • 打赏
  • 举报
回复
我在自己的机子上试了,可以导入,应该是你的EXCEL内容问题.你在试试.
aydh696 2006-07-23
  • 打赏
  • 举报
回复
去掉后,提示:找不到可安装的 ISAM,错误.郁闷!请求支援!
jijl2001 2006-07-23
  • 打赏
  • 举报
回复
改成
System.Data.OleDb.OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.xls;Extended Properties=""Excel 11.0;HDR=Yes""");

;IMEX=1,把这个去掉

110,536

社区成员

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

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

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