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

在.net里面使用updata命令,显示执行成功,但是数据库里面却还是原来的值,insert执行成功,但updata跟delete都失败了,求大神赐教!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class Teacher_Form_Grade : Form
    {
        private String form1_value;

        //Check函数
        private Boolean Check(String StuNum)
        {
            SqlConnection con = DBconnect.con();
            con.Open();
            String sql = "select * from StuCourse where 学号='" + StuNum + "'";
            SqlCommand cmd = new SqlCommand(sql, con);
            SqlDataReader rd;
            rd = cmd.ExecuteReader();
            int x = 0;
            while (rd.Read())
                x++;
            con.Close();
            if (x > 0) { return true ;}
            else { return false; }
       }



        public Teacher_Form_Grade(String val)
        {
            form1_value = val;
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void BtnInsert_Click(object sender, EventArgs e)
        {
            string NewValue = form1_value;
            try
            {
                SqlConnection con = DBconnect.con();
                con.Open();
                SqlCommand cmd = new SqlCommand("select 课程号 from Course,Teacher  where Course.课程名 = Teacher.课程名 and Teacher.教工号 ='" + NewValue + "'", con);
                string CoueseNon = cmd.ExecuteScalar().ToString();                 //获取当前教师所教授的课程号
                con.Close();
                if (TxtBoxNum.Text != "" && TxtBoxGrade.Text != "" && TxtBoxCourseNum.Text != "")
                {
                    if (!Check(TxtBoxNum.Text))
                    {
                        SqlConnection con_1 = DBconnect.con();
                        con_1.Open();
                        SqlCommand cmd_1 = new SqlCommand();
                        if (TxtBoxCourseNum.Text == CoueseNon)
                        {
                            cmd_1.CommandText = "insert into StuCourse values('" + TxtBoxNum.Text + "','" + TxtBoxCourseNum.Text + "','" + TxtBoxGrade.Text + "')";
                            cmd_1.Connection = con_1;
                            cmd_1.ExecuteNonQuery();
                            MessageBox.Show("插入成绩成功!");
                            String sql = "select * from StuCourse where 课程号 ='" + CoueseNon + "'";
                            SqlDataAdapter Adpt = new SqlDataAdapter(sql, con_1);
                            DataSet ds = new DataSet();
                            Adpt.Fill(ds, "StuCourse");
                            DataGridView_Select.DataSource = ds.Tables[0].DefaultView;
                            con_1.Close();
                        }
                        else
                        {
                            MessageBox.Show("您输入的课程号不正确!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("学生学号不能重复!");
                    }
                }
                else
                { 
                    MessageBox.Show("请输入完整的成绩信息!"); 
                }
            }
            catch (Exception cw)
            {
                MessageBox.Show(cw.Message);
            }
        }

        class DBconnect
        {
            public static SqlConnection con()
            {
                string ConStr = "Data Source=localhost;Initial Catalog=WSCJGL;Integrated Security=True;Pooling=False;";
                return new SqlConnection(ConStr);
            }
        }

        private void Teacher_Form_Grade_Load(object sender, EventArgs e)
        {
                TxtBoxNum.Text = "";
                TxtBoxGrade.Text = "";
                TxtBoxCourseNum.Text = "";
           
        }

        private void BtnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = DBconnect.con();
                con.Open();
                SqlCommand cmd = new SqlCommand("select 课程号 from Course,Teacher  where Course.课程名 = Teacher.课程名 and Teacher.教工号 ='" + form1_value + "'", con);
                string CoueseNon = cmd.ExecuteScalar().ToString();                 //获取当前教师所教授的课程号
                con.Close();
                if (TxtBoxNum.Text != "" && TxtBoxCourseNum.Text != "")
                {

                    if (Check(TxtBoxNum.Text))
                    {

                        SqlConnection con_2 = DBconnect.con();
                        con_2.Open();
                        SqlCommand cmd_2 = new SqlCommand();
                        if (TxtBoxCourseNum.Text == CoueseNon)
                        {
                            cmd_2.CommandText = "update StuCourse set 成绩='" + TxtBoxGrade.Text + "' where 学号= ' " + TxtBoxNum.Text + "' and 课程号='" + TxtBoxCourseNum.Text + "'";
                            cmd_2.Connection = con_2;
                            cmd_2.ExecuteNonQuery();
                            MessageBox.Show("修改数据成功!");
                            String sql_2 = "select * from StuCourse ";
                            SqlDataAdapter Adpt = new SqlDataAdapter(sql_2, con_2);
                            DataSet ds = new DataSet();
                            Adpt.Fill(ds, "StuCourse");
                            DataGridView_Select.DataSource = ds.Tables[0].DefaultView;
                            con_2.Close();
                        }
                        else
                        {
                            MessageBox.Show("您输入的课程号不正确!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("学号不存在!");
                    }
                }
                else
                {
                    MessageBox.Show("学号和课程号不能为空");
                }
            }
            catch (Exception cw)
    {
        MessageBox.Show(cw.Message);
    }
        }

        private void BtnDelete_Click(object sender, EventArgs e)
        {

            string NewValue = form1_value;
            try
            {
                SqlConnection con = DBconnect.con();
                con.Open();
                SqlCommand cmd = new SqlCommand("select 课程号 from Course,Teacher  where Course.课程名 = Teacher.课程名 and Teacher.教工号 ='" + NewValue + "'", con);
                string CoueseNon = cmd.ExecuteScalar().ToString();                 //获取当前教师所教授的课程号
                con.Close();
                if (TxtBoxNum.Text != "" && TxtBoxGrade.Text != "" && TxtBoxCourseNum.Text != "")
                {
                    if (Check(TxtBoxNum.Text))
                    {
                        SqlConnection con_3 = DBconnect.con();
                        con_3.Open();
                        SqlCommand cmd_3 = new SqlCommand();
                        if (TxtBoxCourseNum.Text == CoueseNon)
                        {
                            cmd_3.CommandText = "delete from StuCourse where 学号= ' " + TxtBoxNum.Text + "' and 课程号='" + TxtBoxCourseNum.Text + "'";
                            cmd_3.Connection = con_3;
                            cmd_3.ExecuteNonQuery();
                            MessageBox.Show("删除成绩成功!");
                            String sql_3 = "select * from StuCourse where 课程号 ='" + CoueseNon + "'";
                            SqlDataAdapter Adpt = new SqlDataAdapter(sql_3, con_3);
                            DataSet ds = new DataSet();
                            Adpt.Fill(ds, "StuCourse");
                            DataGridView_Select.DataSource = ds.Tables[0].DefaultView;
                            con_3.Close();
                        }
                        else
                        {
                            MessageBox.Show("您输入的课程号不正确!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("学生学号不存在!");
                    }
                }
                else
                {
                    MessageBox.Show("请输入完整的成绩信息!");
                }
            }
            catch (Exception cw)
            {
                MessageBox.Show(cw.Message);
            }

        }
       
    }
}
--------------------编程问答-------------------- 不能沉啊 --------------------编程问答-------------------- 大神们人都哪儿去了? --------------------编程问答-------------------- 你问问题的时间不对; http://www.cnblogs.com/Elijah/archive/2011/11/04/2236612.html --------------------编程问答-------------------- 自己断点调试一下 将update 和 delete 语句拿出来去数据库执行一下 看报什么错 --------------------编程问答--------------------
string ConStr = "Data Source=localhost;Initial Catalog=WSCJGL;Integrated Security=True;Pooling=False;";
try
{
using (SqlConnection con = new SqlConnection(ConStr))
{
con.Open();
var sql = "select 课程号 from Course,Teacher  where Course.课程名 = Teacher.课程名 and Teacher.教工号 ='" + form1_value + "'";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
string CoueseNon = cmd.ExecuteScalar().ToString();//获取当前教师所教授的课程号
if (TxtBoxNum.Text != "" && TxtBoxCourseNum.Text != "")
{
//检查这里是否check 了没有
if (Check(TxtBoxNum.Text))
{
using (SqlConnection con_2=new SqlConnection(ConStr))
{
if (TxtBoxCourseNum.Text == CoueseNon)
{
var updateSQL="update StuCourse set 成绩='" + TxtBoxGrade.Text + "' where 学号= ' " + TxtBoxNum.Text + "' and 课程号='" + TxtBoxCourseNum.Text + "'";
SqlCommand cmd_2 = new SqlCommand(updateSQL, con_2);
cmd_2.ExecuteNonQuery();
MessageBox.Show("修改数据成功!");
SqlDataAdapter Adpt = new SqlDataAdapter("select * from StuCourse ", con_2);
DataSet ds = new DataSet();
Adpt.Fill(ds, "StuCourse");
DataGridView_Select.DataSource = ds.Tables[0].DefaultView;
con_2.Close();
}
else
{
MessageBox.Show("您输入的课程号不正确!");
}
}

}
else
{
MessageBox.Show("学号不存在!");
}
}
else
{
MessageBox.Show("学号和课程号不能为空");
}
}
}

}

给你优化了下。你重点断点设置在if (Check(TxtBoxNum.Text)) 看看是否进去了 --------------------编程问答-------------------- 看看delete 和update执行
cmd.ExecuteNonQuery();的结果是什么的? --------------------编程问答-------------------- where 学号= ' " + TxtBoxNum.Text + "' 
你看看是不是学号这个条件这里多加了空格! --------------------编程问答-------------------- 谢谢楼上的各位大神,昨晚我自己已经找到原因了,断点跟踪之后发现正如7楼说的那样是空格的问题,谢谢各位了 --------------------编程问答--------------------
引用 8 楼 u011514341 的回复:
谢谢楼上的各位大神,昨晚我自己已经找到原因了,断点跟踪之后发现正如7楼说的那样是空格的问题,谢谢各位了
建议还是使用SqlParmtemers
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,