如何使用asp.net更新Excel数据

时间:2013-09-12 07:10:17

标签: .net odbc office-interop excel-interop

我有一个Excel工作簿,其中包含不同工作表中的数据。我想使用asp.net更新excel工作簿。

在asp.net中,我使用以下查询来更新excel数据:

OdbcConnection con = new OdbcConnection(ConfigurationManager.ConnectionStrings["SportTech"].ConnectionString);
OdbcCommand cmd;
con.Open();

string name = "sandeep";
string pos = "1";
string time = "11";
string point = "70";

string query = "UPDATE [Sheet1$] SET POSITION=\"" + pos + "\",Time=\"" + time + "\",Point=\"" + point + "\" WHERE NAME=" + name;

cmd = new OdbcCommand(query,con);
string x = cmd.ExecuteNonQuery().ToString();
MessageBox.Show(x.ToString());

但查询显示错误

  

错误[42000Ձ] [Microsoft] [ODBC Excel驱动程序] UPDATE语句中的语法错误。

谢谢!

1 个答案:

答案 0 :(得分:1)

将excel文件放入您网站的 App_Data 文件夹中。

你可以试试这个:

string name = "sandeep";
string pos = "1";
string time = "11";
string point = "70";
string conStr = @"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" +
@"DBQ=|DataDirectory|\SportTech.xls;ReadOnly=0;";
OdbcConnection con = new OdbcConnection(conStr);
con.Open();
string query = "update [Sheet1$] set [POSITION]=?,[Time]=?,[Point]=? where [NAME]=?";
OdbcCommand cmd = new OdbcCommand(query, con);
cmd.Parameters.AddWithValue("?", pos);
cmd.Parameters.AddWithValue("?", time);
cmd.Parameters.AddWithValue("?", point);
cmd.Parameters.AddWithValue("?", name);
cmd.ExecuteNonQuery();
con.Close();