日期:2014-05-17  浏览次数:20933 次

C#访问数据库update报错
代码粘贴如下:

for (int j = 0; j < row; j++)
            {

                //找出原始值
                string find_value = "select * from sensor_running where (date(dt) between str_to_date('2012-08-01', '%Y-%m-%d') and str_to_date('2012-08-07', '%Y-%m-%d')) and weekday(date(dt)) < 5 and (time(dt) = '23:30:00') and sub_id = " + id[j];
                DataSet ds_week_morning = new DataSet();
                DataTable dt_week_morning = new DataTable();
                MySqlDataAdapter da_week_morning = new MySqlDataAdapter(find_value,conn);
                da_week_morning.Fill(ds_week_morning,id[j].ToString());
                dt_week_morning = ds_week_morning.Tables[id[j].ToString()];
                for (int k = 0; k < dt_week_morning.Rows.Count; k++)
                {
                    //为凌晨的数据赋以与前一天深夜一样的值
                    string set_value = "UPDATE sensor_running SET value = " + dt_week_morning.Rows[k][1] + "WHERE sub_id = " + id[j] + " AND date(dt) = date_add(date(str_to_date('" + dt_week_morning.Rows[k][2].ToString() + "','%Y/%m/%d %H:%i:%d')), interval 2 day) and hour(dt) between 0 and 7";
                    MySqlCommand update = connectMySQL.getMySqlCommand(set_value, conn);
                    update.ExecuteNonQuery();
                    Console.Write("影响{0}行\n", update.ExecuteNonQuery());
                }
            }

运行程序时,update.ExecuteNonQuery();处报错:You have an error in your SQL syntax。但是将查询语句直接用于mysql时并没有出错,可以update。应该不是语法错误这么简单的问题,麻烦求问高手这个update错在哪里

------解决方案--------------------
再仔细看下sql语句,肯定写错了
------解决方案--------------------
连空格都没有,你真的调试set_value了吗?

你是把csdn当成学校自习室了吧。其实既然号称“程序员论坛”,csdn应该是给想学习调试、开发技术的人的,而不是给懒得自己调试一下变量值的人用的。
------解决方案--------------------
  &nbs