刚学winform,最近在写一个学生管理系统。现在碰到一个让我很郁闷的事情。就是,当用户要删除信息时,我会先把东西备份一下。如果用insert into 表名 values()这种方法,会成功。 但是这样很麻烦。我用了insert into 表名 select 列1,列2.。。 from 原表名 where  条件     结果返回值一直为零,这是为什么?

解决方案 »

  1.   

    把你的SQL语句贴出来看看 你这样说的不明白
      

  2.   

    90%以上的可能性是sql语句的问题,
    设断点,调试取出这条sql内容,放到sql server查询分析器中执行,看报什么错
      

  3.   

    where 条件有问题,select一行都没有
      

  4.   

    哥们,我已经把东西都写好了。我把我的代码贴出来。
    string courseid=this.dgvteacher.currentrow.cells[0].value.tostring();
    string sql="insert into coursebak select courseid,coursename,teacherid from courseinfo where courseid='"+courseid+"'";
    Sqlconnection con=new sqlconnection("server=.;database=student;uid=sa;pwd=123;");
    sqlcommand cmd=new sqlcommand(sql,con);
    con.open();
    int i=CMD.execunonequery();
    con.close();
    if(i>0)
    {
       messagebox.show("备份成功");
    }
    如果单词错误,纯属意外。呵呵。我不是在最近的电脑上写的。凭记忆的。
      

  5.   

    另外,此处的courseid是用数据的。我昨晚调试了。上面courseid的值已经得到了。
    但是最后返回的值一直是0;
      

  6.   

    Insert into Table2(field1,field2,...) select value1,value2,... from Table1
    参考
    可以先测试下 select courseid,coursename,teacherid from courseinfo where courseid='"+courseid+"'"
    是否能读取记录