<关于C#读取EXCEL的问题>

wuhang_3s 2012-05-30 02:42:02
前辈们,求传授! 问:我用C#开发的一个应用程序,主要模式是 EXCEL导入至DataGirdView中,再后台读入至SQL中,我目前是先维护SQL表的字段与导入的EXCEL列字段是对应的数量。 但,问题来了,我想在SQL中将所有可能会导入的字段(所有的)信息维护进去,EXCEL的字段只需在对应的字段(其中部分)中找到信息存储进去。
public void ExcelToDataGridView(string filePath, DataGridView dgv)
{
/*我的思路是,从excel中把所有的行都到,excel中第一样是字段的value,第二行是字段的name
然后通过程序生成dataGridView1的列,而不是你原来的是在dataGridView1中写死的列这样的
话就是以excel中的列数为准,就不会出现索引超出范围的错误
*/
DataSet ds = Exceldq(filePath);
DataTable dt = new DataTable();
//这个就是通过excel的第一行和第二行生成 datatable 的列
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
DataColumn dc = new DataColumn();
dc.DefaultValue = ds.Tables[0].Rows[0][i].ToString();
dc.ColumnName = ds.Tables[0].Rows[1][i].ToString();
dt.Columns.Add(dc);
}
//删除几行就复制几个下面的语句
ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[0]);//删除第一行
ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[0]);//珊瑚第二行

foreach (DataRow excelRow in ds.Tables[0].Rows)
{
int i = 0;
DataRow dr = dt.NewRow();
foreach (DataColumn dc in dt.Columns)
{
dr[dc] = excelRow[i];
i++;
}
dt.Rows.Add(dr);
}
zhu.DataSource = dt;
//利用循环语句,根据输入的EXCEL信息,逐行录入数据库
DataTable table = (DataTable)zhu.DataSource;

for (int i = 0; i < table.Rows.Count; i++)
{
//数据库中维护的表名与字段名
string sql = "insert into zhu(BSM,SJDM,SJ,XJDM,X,XZDM,XZ,FZ,YJQMC,EJQMC,SJQMC) values";
string sqlvalue = "";
for (int j = 0; j < table.Columns.Count; j++)
{

string aa = table.Rows[i][j].ToString();
if (sqlvalue.Equals(""))
{
sqlvalue = "'" + aa + "'";
}
else
{
sqlvalue += ",'" + aa + "'";
}
}
sql = sql + " (" + sqlvalue + ")";
//调用Sql添加方法
fdzs.lei.zhufangfa zz = new lei.zhufangfa();
zz.add(sql);
//MessageBox.Show(sql);
}
}
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhang_3s 2012-05-30
  • 打赏
  • 举报
回复
string sql = "insert into zhu(BSM,SJDM,SJ,XJDM,X,XZDM,XZ,FZ,YJQMC,EJQMC,SJQMC) values";
我只能导入在EXCEL限制好的字段,如果加减字段,与之前数据库中维护的字段名不一样,就不行了。
Osiris4Net 2012-05-30
  • 打赏
  • 举报
回复
问题在哪呢……
Osiris4Net 2012-05-30
  • 打赏
  • 举报
回复
问题在哪呢……
山之魂2 2012-05-30
  • 打赏
  • 举报
回复
目前还有什么问题呢?

111,126

社区成员

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

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

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