在.net里面使用updata命令,显示执行成功,但是数据库里面却还是原来的值,insert执行成功,但updata跟delete都失败了,求大神赐教!
using System;--------------------编程问答-------------------- 不能沉啊 --------------------编程问答-------------------- 大神们人都哪儿去了? --------------------编程问答-------------------- 你问问题的时间不对; http://www.cnblogs.com/Elijah/archive/2011/11/04/2236612.html --------------------编程问答-------------------- 自己断点调试一下 将update 和 delete 语句拿出来去数据库执行一下 看报什么错 --------------------编程问答--------------------
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);
}
}
}
}
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楼说的那样是空格的问题,谢谢各位了 --------------------编程问答-------------------- 建议还是使用SqlParmtemers
补充:.NET技术 , ASP.NET