private void toolDelete_Click(object sender, EventArgs e) //删除
        {
            string P_Str_condition = this.dataGridView1[1, this.dataGridView1.CurrentCell.RowIndex].Value.ToString();
            string P_Str_cmdtxt = "DELETE FROM 教师情况 WHERE 现名=" + P_Str_condition + "";
            if (G_SqlClass.GetExecute(P_Str_cmdtxt))
            {
                MessageBox.Show("数据删除成功!");
            }
            //else
            //{
            //    MessageBox.Show("数据删除失败!");
            //}
            string cmdtxt = "SELECT 编号,现名,曾名,性别,民族,出生日期,参加工作时间,职称,职称时间,毕业时间,毕业学校,专业,受教育形式,学制,学位,奖励,教研室 FROM 教师情况";
            this.dataGridView1.DataSource = G_SqlClass.GetDs(cmdtxt).Tables[0];
        }数据库教师情况
序号 字段 字段类型 宽度 主键
0 编号 char 4 √
1 现名 varchar 20
2 曾名 varchar 20
3 性别 char 10
4 民族 char 10
5 出生日期 datetime 10
6 参加工作时间 datetime 10
7 职称 Char 10
8 职称时间 datetime 10
9 毕业时间 datetime 10
10 毕业学校 varchar 30
11 所学专业 varchar 30
12 受教育形式 char 10
13 学制 char 10
14 学位 char 10
15 照片 image 16
16 奖励 text 16
17 教研室 varchar 30我对数据库设计不是很了解,如果是数据库的错误,请详细讲一下哪错了,谢谢了~~~

解决方案 »

  1.   

    string P_Str_cmdtxt = "DELETE FROM 教师情况 WHERE 现名=" + P_Str_condition + ""; 
    ----------------------------------------------------------应改为:
    string P_Str_cmdtxt = "DELETE FROM 教师情况 WHERE 现名='" + P_Str_condition + "'"; 
      

  2.   

    private void toolDelete_Click(object sender, EventArgs e)
            {
                string P_Str_condition = this.dataGridView1[8, this.dataGridView1.CurrentCell.RowIndex].Value.ToString();
                string P_Str_cmdtxt = "DELETE FROM 个人简历 WHERE id=" + P_Str_condition + "";
                if (G_SqlClass.GetExecute(P_Str_cmdtxt))
                {
                    MessageBox.Show("数据删除成功!");
                }
                else
                {
                    MessageBox.Show("数据删除失败!");
                }
                string cmdtxt = "SELECT 编号,姓名,起始时间,结束时间,工作单位,职称,职务,在各级学术机构任职情况 FROM 个人简历";
                this.dataGridView1.DataSource = G_SqlClass.GetDs(cmdtxt).Tables[0];
            }
    我在这段代码中的数据就能正常删除~
      

  3.   

    应使P_Str_condition的值在代入以后,前面各有一个单引号将它括起来。
      

  4.   

    SQL语句问题,字符串要用单引号括起来。
      

  5.   

    我的意思是我知道现在我应该加上单引号
    string P_Str_cmdtxt = "DELETE FROM 教师情况 WHERE 编号='" + P_Str_condition + "'";
    这样对吧
    我不明白的是为什么都是删除数据,下面这段为什么不用加单引号,还有为什么要加单引号?
    private void toolDelete_Click(object sender, EventArgs e) 
            { 
                string P_Str_condition = this.dataGridView1[8, this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 
                string P_Str_cmdtxt = "DELETE FROM 个人简历 WHERE id=" + P_Str_condition + ""; 
                if (G_SqlClass.GetExecute(P_Str_cmdtxt)) 
                { 
                    MessageBox.Show("数据删除成功!"); 
                } 
                else 
                { 
                    MessageBox.Show("数据删除失败!"); 
                } 
                string cmdtxt = "SELECT 编号,姓名,起始时间,结束时间,工作单位,职称,职务,在各级学术机构任职情况 FROM 个人简历"; 
                this.dataGridView1.DataSource = G_SqlClass.GetDs(cmdtxt).Tables[0]; 
            } 十分感谢芥子的答案,十分准确
      

  6.   

    除非你的P_Str_condition是一个表中存在的列名。
      

  7.   

    不是表中的列名,都是char型的
      

  8.   

    现名=" + P_Str_condition + "";  现名='" + P_Str_condition + "'";