请问谁知道怎么在c#中进行数据库中的数据删除吗,我试了几段代码都不成功,既不报错也没反应。使用的数据库时sql server2005
我的代码是这样的:
 private void ok_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(conn);
            con.Open();
            String str1;
            if (dl != "")
            {
                str1 = "delete from 对象表 where 对象名称='" + dl + "')";
                SqlCommand MyCommand = new SqlCommand(str1, con);
                try
                {
                    con.Open();
                    MyCommand.ExecuteNonQuery();
                    con.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{0} Exception caught.", ex);
                }
            }
            else
                MessageBox.Show("不能输入空值!");
        }

解决方案 »

  1.   

    conn是什么内容,两处con.Open()。先学会下断点一行行代码执行。
      

  2.   

    你在str1 = "delete from 对象表 where 对象名称='" + dl + "')";这句设个断点,然后取出str1的值,看看有没有错,然后放到server sql 的查询窗口中执行,看看能否删除行,
     
      

  3.   

    MyCommand.ExecuteNonQuery();这句可以判断一下返回值,返回值等于删除的行的数目,int nRowCount=MyCommand.ExecuteNonQuery();if (nRowCount<=0)
    {
    MessageBox.Show("没有删除任何一行");
    }
      

  4.   

    怎么连接打开了两次:con.Open();
    如果不报错的话估计是你的Sql语句已经正确执行了,有可能是你的Sql语句的对象名称写的不正确,楼主可以试试监听下sql语句
      

  5.   

    我以前见过 后来把 try catch  去了之后好了…………
      

  6.   

      str1 = "delete from 对象表 where 对象名称='" + dl + "')";
    首先红色部分都一个右括号,删掉
      str1 = "delete from 对象表 where 对象名称='" + dl + "'";还有前面已经  con.Open();后面又  con.Open();建议  con.Open();写在后面
    去掉try catch调试,看看具体错误
      
      

  7.   

    这个没有出现:MessageBox.Show("没有删除任何一行"),但是我查看数据库也没有删除。
      

  8.   

    sql语句没有错,设置断点调试看了。内容是对的。
      

  9.   

      你把try catch去了就能报错了
      把你的sql语句放Sqlserver查询分析器执行试试
      

  10.   

    数据库open了2次?try
      {
      con.Open();//删除
      MyCommand.ExecuteNonQuery();
      con.Close();
      }
      catch (Exception ex)
      {
      Console.WriteLine("{0} Exception caught.", ex);
      }
      }
      

  11.   


    如果是这个问题,首先看看你的连接串是否正确,比如数据库有没有写错
    如果上面没有问题,再看看你表的owner是谁,你连接串中的用户有没有操作这个表的权限。或者你在sql语句中加上owner
    "delete from owner.table where 对象名称='" + dl + "'"