private void button5_Click(object sender, EventArgs e)
        {
             string sql = "update [sheet1$A2:F15] set B=5553 where A='11'";            DoOleSql(sql);
        }        protected void DoOleSql(string sql)
        {
            OleDbConnection conn = new OleDbConnection();
            String serverFilename = "d:\\11.xlsx";
            conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + serverFilename + "';Extended Properties='Excel 12.0;HDR=YES;IMEX=2'";             try
            {//打开连接
                MessageBox.Show("0");
                conn.Open();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
              //  Response.Write(e.ToString());
            }
            OleDbCommand olecommand = new OleDbCommand(sql, conn);
            try
            {//执行语句
                MessageBox.Show("1");
                olecommand.ExecuteNonQuery();
            }
            catch (Exception eee)
            {
                MessageBox.Show(eee.ToString());
              //  Response.Write(eee.ToString());
                conn.Close();
            }
            finally
            {
                conn.Close();//关闭数据库
            }
            conn.Close();
        }

解决方案 »

  1.   

    看下数据库B=5553,B是什么数据类型,估计是B的类型不正确
      

  2.   

    我觉得你的问题,不在代码,而是excel单元格的格式上。
      

  3.   

    http://blog.csdn.net/happy09li/article/details/7431967
      

  4.   

    set B='5553'改成这样呢 
      

  5.   

    我已经将所有的Excel格式全部改成文本格式。不然改成那种格式比较可行呢?
      

  6.   


    对,或者改一下excel的列的数据类型,改为数字
      

  7.   

    如果A、B类型都是字符串,换成 string sql = "update 表名 set B='5553' where A='11'";
      

  8.   

    你把连接EXECL的地方的IMEX=1 改成 IMEX=2