怎么样读Excel表的表名,和几列,

掌鑫磊外包 2007-09-12 01:39:20
如:
Excel表名是BOOK是这样的:

姓名 学号 英语 计算机

啊啊啊 2404 56 56

只要读表名为BOOK和知道总共是4列,
...全文
184 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
掌鑫磊外包 2007-09-12
  • 打赏
  • 举报
回复
我是先建立这个表,后面才写入列,不行吗??
tds__609 2007-09-12
  • 打赏
  • 举报
回复
string strcom1 = "create table "+dtname;

================
你只有表名 没有定义列啊
zhaohui0312 2007-09-12
  • 打赏
  • 举报
回复
到这里搜索一下,http://www.csp6.com
掌鑫磊外包 2007-09-12
  • 打赏
  • 举报
回复
恩,谢谢大家,按照大家的提示,以下是代码,
protected void Button3_Click(object sender, EventArgs e)
{

string file = "~/uploadfiles/" + DropDownList1.Text;
string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + " Data Source=" + Server.MapPath(file) + "; Extended Properties=Excel 8.0;";
OleDbConnection Conn = new OleDbConnection(ConStr);
Conn.Open();
OleDbCommand Comm = new OleDbCommand("select * from [Sheet1$]", Conn);
OleDbDataAdapter ad = new OleDbDataAdapter();
ad.SelectCommand = Comm;
DataSet ds = new DataSet();
ad.Fill(ds, "xls");
OleDbCommandBuilder cb = new OleDbCommandBuilder(ad);
ad.Update(ds, "xls");

string connstr = System.Configuration.ConfigurationSettings.AppSettings["connstring"];
SqlConnection con = new SqlConnection(connstr);




for (int i = 0; i < ds.Tables.Count; i++)
{
DataTable mytable = ds.Tables[i];
dtname = mytable.TableName;
string tstr1 = dtname + "(";
string colname = "(";
string colname1 = "(";
string colt = "";
for(int j=0;j<mytable.Columns.Count;j++)
{
tstr1+=mytable.Columns[j].ColumnName;
colname+=mytable.Columns[j].ColumnName+",";
colname1+="@"+mytable.Columns[j].ColumnName+",";
string dp=mytable.Columns[j].DataType.ToString();
dp=dp.Substring(dp.IndexOf(".")+1);
if(dp.StartsWith("int"))
{
dp="int";
}
else {dp="Text";}
colt+=dp+",";
tstr1+=" "+dp+",";
}
tstr1=tstr1.TrimEnd(',')+")";
colname=colname.TrimEnd(',')+")";
colname1=colname1.TrimEnd(',')+")";
//出错的地方。。开始 ***********************************88
string strcom1 = "create table "+dtname;
SqlCommand mycom1 = new SqlCommand(strcom1, con);
con.Open();
mycom1.ExecuteNonQuery();
//出错的地方。。结束 ************************
Response.Write("<script>alert('新建了一个表!');location='javascript:history.go(-1)'</script>");
con.Close();
}

}

还是出现错误,我怀疑是读到表名时候那后缀.xls也读了,所以在写SQL,建立表的时候就提示出错了,

异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: 'xls' 附近有语法错误。

各位高手看看是不是????怎么把后缀过滤掉呢?
JGood 2007-09-12
  • 打赏
  • 举报
回复
//列数
DataSet.Tables[0].Columns.Count
JGood 2007-09-12
  • 打赏
  • 举报
回复
index: 列索引
DataSet.Tables[0].Columns[index].ColumnName
benimaru8610 2007-09-12
  • 打赏
  • 举报
回复
myDs.Tables[0].Rows[i].ItemArray[0].ToString()
Tables[0]表示当前的DataSet表,Rows[0]表示第1行,ItemArray[0]表示第1列,tostring()表示转换成字符型
MagicPeng 2007-09-12
  • 打赏
  • 举报
回复
你说得book是标签把?我原来写过没取到过标签,
掌鑫磊外包 2007-09-12
  • 打赏
  • 举报
回复
意思就是
该Excel的表名是:BOOK.xls
改表共有:4列
所以要在SQL中建立这个以BOOK为表名,列数为4的表
tds__609 2007-09-12
  • 打赏
  • 举报
回复
只要读表名为BOOK和知道总共是4列,
----------------
what's mean?
掌鑫磊外包 2007-09-12
  • 打赏
  • 举报
回复
UPUP。,补充:Excel表已经读到在Dataset中,

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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