Excel数据导入SQL数据库中的对应表——C#WEB开发问题。

当感情变旧 2015-04-26 12:51:35
下面是获取Excel数据的代码:
HttpPostedFile p = fUExcel.PostedFile;
string filename = DateTime.Now.ToString("yyyyMMddHHmm") + Path.GetFileName(p.FileName);
if (!Directory.Exists(Server.MapPath(@"~/upload" + "//")))
Directory.CreateDirectory(Server.MapPath(@"~/upload" + "//"));
string filePath = Server.MapPath(@"~/upload" + "//" + filename);
fUExcel.SaveAs(filePath);
if (filename != "")
{
if (filename.Contains("xls"))
{
System.Data.DataTable dt = null;
OleDbConnection oleCon = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source='" + filePath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=2;'");
oleCon.Open();
System.Data.DataTable schemaTable = oleCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();
string Sql = "select * from [" + sheetName + "]";
OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);
DataSet ds = new DataSet();
mycommand.Fill(ds, "[+ sheetName +]");
oleCon.Close();
dt = ds.Tables[0];

接下来应该是将数据再录入数据库,代码是这样的

foreach (DataRow dr in dt.Rows)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Students"].ConnectionString);
try
{
int i = 0;

string lng = dr["LNG"].ToString().Trim();
string lat = dr["LAT"].ToString().Trim();
string offsetLNG = dr["OFFSET_LAT"].ToString().Trim();
//sw = string.IsNullOrEmpty(sw) ? "null" : sw;
//kr = string.IsNullOrEmpty(kr) ? "null" : kr;

string comm =string.Format("insert into Students (LNG,LAT,OFFSET_LAT) values ('{0}','{1}',{2})", lng, lat, offsetLNG);
conn.Open();
string strConnection = ConfigurationManager.ConnectionStrings["Students"].ToString();
SqlConnection sqlConnection = new SqlConnection(strConnection);
sqlConnection.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = comm;
sqlCmd.Connection = sqlConnection;
SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();
i++;
sqlDataReader.Close();
}
catch (Exception erro)
{
Response.Write("错误信息:" + erro.Message);
}
finally
{
conn.Close();
}

执行没错,但是数据库没有变化。
下面是我连接的数据库:
<connectionStrings>
<add name="Students" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Students.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
...全文
339 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwsss 2015-04-26
  • 打赏
  • 举报
回复
sqlCmd.ExecuteNonQuery 调试。。。
当感情变旧 2015-04-26
  • 打赏
  • 举报
回复
问题已解决,是我把获取数据的代码放错了地方,加上一楼大神的指点,完全解决。多谢
当感情变旧 2015-04-26
  • 打赏
  • 举报
回复
我的QQ:1328441212.欢迎大神指导小妹
当感情变旧 2015-04-26
  • 打赏
  • 举报
回复
引用 4 楼 slwsss 的回复:
SqlDataReader sqlDataReader = sqlCmd.ExecuteReader(); 换成 sqlCmd.ExecuteNonQuery()
这样一改,下边的sqlDataReader.Close();就出错了。
slwsss 2015-04-26
  • 打赏
  • 举报
回复
SqlDataReader sqlDataReader = sqlCmd.ExecuteReader(); 换成 sqlCmd.ExecuteNonQuery()
当感情变旧 2015-04-26
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
sqlCmd.ExecuteNonQuery 调试。。。
调试了,没问题,插入断点也调试了。
当感情变旧 2015-04-26
  • 打赏
  • 举报
回复
就调试这一句吗

10,612

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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