首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#访问数据库update报错,该怎么解决

2013-02-20 
C#访问数据库update报错代码粘贴如下:for (int j 0 j row j++){//找出原始值string find_value s

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错在哪里

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";

红色部分少空格。另外你可以调试,把set_value 拿到sql查询分析器执行下看看是否正确
[解决办法]
把你的sql语句拿到数据库里执行一下看看有没有错误

热点排行