当前位置:编程学习 > C#/ASP.NET >>

c#删除失败

我的代码:
 if (MessageBox.Show("确认删除?", "此删除不可恢复", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                string sql = "delete from worksheet where subject ='紧急异常'";
                MySQLConnection conn = null;

                conn = new MySQLConnection(new MySQLConnectionString("1.1.1.1", "test", "test", "test").AsString);


                try
                {
                    conn.Open();
                    MySQLCommand commn = new MySQLCommand(sql, conn);

                    int count = commn.ExecuteNonQuery();
                    if (count >0)
                    {
                        MessageBox.Show("删除成功!");
                        load();
                    }
                    else
                    {
                        MessageBox.Show("删除失败!");
                    }
                }
                catch (System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }

                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
执行后老提示删除失败,调试一看,count=0,不知道哪里错了,真让人头疼啊 --------------------编程问答-------------------- 你要删除的数据存在吗 不存在了当时是0啦  --------------------编程问答-------------------- 那样的数据库连接真的能用吗? --------------------编程问答-------------------- 跟踪一下看你代码有没正确执行啊。
如果执行了,看数据库中是否有相应数据。 --------------------编程问答-------------------- 在数据库里试一下delete from worksheet where subject ='紧急异常这个能成功不? --------------------编程问答-------------------- 数据库可连,要删除的subject也确实存在,只不过我发现好像where 条件下subject 不能接中文,英文的可删,奇怪了吧?
--------------------编程问答-------------------- delete from worksheet where subject ='紧急异常'
条件不满足,subject 字段的设置成nvarchar(),再试试 --------------------编程问答-------------------- 数据库是subject是varchar类型的,而且是正式的数据库,不方便更改类型,知识不懂为啥只能识别英文的数据? --------------------编程问答-------------------- ’紧急异常‘是不是后面有空格啊 数据库中  跟中文没啥关系 肯定是条件内容不对啦 --------------------编程问答--------------------
在sql中新建个查询执行

delete from worksheet where subject ='紧急异常'

看能成功码?

看看subject ='紧急异常'。。。前后是不是多了空格。。 --------------------编程问答-------------------- 觉得是sql语句的问题,调试一下,把语句放到数据库里执行一下试试。 --------------------编程问答-------------------- 试过了,在mysql数据库中可以查询出‘紧急异常'的数据,不存在空格,然后在执行程序 ,还是删除失败....。。。。。。。。。 --------------------编程问答-------------------- 立马将“紧急异常”换成英文,就可以删除 --------------------编程问答-------------------- 我的库中关于‘紧急异常’的重复数据有上千条,但每条的ID不同,这样有关系么? --------------------编程问答--------------------
引用 13 楼 fanzhigang 的回复:
我的库中关于‘紧急异常’的重复数据有上千条,但每条的ID不同,这样有关系么?
没关系。 --------------------编程问答-------------------- 第一,我没看懂你的数据库连接字符串
第二,你的表中可能不存在你要删除的那一条记录。 --------------------编程问答-------------------- 多调试下代码,比如检查下连接字符串,然后把需要sql文copy到查询分析器里面执行下,看可以成功不! --------------------编程问答-------------------- delete from worksheet where subject ='紧急异常'
改成
delete from worksheet where subject like'%紧急异常%'
你先备份一下数据,然后在数据库上试试 --------------------编程问答-------------------- delete from worksheet where subject =N'紧急异常'
汉字前面加个N试试 --------------------编程问答-------------------- 确认数据是否真正存在,不存在当然返回0 --------------------编程问答-------------------- delete from worksheet where subject =N'紧急异常'?

可以不用from 吗? --------------------编程问答--------------------
引用 20 楼 tang009 的回复:
delete from worksheet where subject =N'紧急异常'?

可以不用from 吗?


可以不用的!!! --------------------编程问答-------------------- 估计是数据库的编码问题。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,