我在vs2005用c#语言做了个窗体程序,实现对数据库文件插入和删除等操作,可是无法将更改后的数据写入数据库

代码:string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
public void delete()
{
using (SqlConnection sqlconn = new SqlConnection(constr))
{

string detext = "delete from Students where StudentID='" + textBox1.Text + "'";
sqlconn.Open();
SqlCommand cmdup = new SqlCommand();
cmdup .CommandType =CommandType .Text ;
cmdup.Connection = sqlconn;
cmdup.CommandText = detext;
cmdup.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show("删除成功!");
(虽然有提示删除成功,但结束程序运行后打开数据库里面的数据还是没变,求教)

第1个回答  2012-06-02
确定你删除的的StudentID在数据库里存在,并且textBox1代表StudentID(以后最好起个有意义的名字);还有进入数据库时刷新一下看看。
第2个回答  2012-06-01
string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";这个写错了,连接sqlserver数据库不能这样写|DataDirectory|\Database1.mdf。
一般写法是:string constr = @"Data Source=.\SQLEXPRESS;database=Database1;uid=sa;pwd=123456;";追问

可能我没说清楚,我要连接的是数据库文件,直接连接数据库的话我自己就可以搞定了,代码就是你这样的

追答

把cmdup.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show("删除成功!");改为
int i=cmdup.ExecuteNonQuery();
sqlconn.Close();
if(i>0)
MessageBox.Show("删除成功!");
else
MessageBox.Show("删除失败!");

追问

你还是不用回答了,看着就知道你也不会的

第3个回答  2012-06-01
cmdup 也要关上啊追问

请具体点,最后附上代码

追答

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
public void delete()
{
using (SqlConnection sqlconn = new SqlConnection(constr))
{

string detext = "delete from Students where StudentID='" + textBox1.Text + "'";
sqlconn.Open();
SqlCommand cmdup = new SqlCommand();
cmdup .CommandType =CommandType .Text ;
cmdup.Connection = sqlconn;
cmdup.CommandText = detext;
cmdup.ExecuteNonQuery();
cmdup.Close();
sqlconn.Close();
MessageBox.Show("删除成功!");

追问

唉,我觉得你好扯淡,cmdup根本没有close方法

追答

有 好不!

追问

我用的是vs2005,cmdup打点之后根本就没出现这个方法,还有,我估计我的问题是数据连接酶打开,可就是不知道怎么改,我输个错误的学号它也会提醒删除成功

追答

string detext = "delete from Students where StudentID='" + textBox1.Text + "'";
sqlconn.Open();
MessageBox.Show(sqlconn.State.toString());//看下连接状态

额,抱歉,我用的是
using(SqlConnection sqlconn = new SqlConnection(constr){}
using(SqlCommand cmdup = new SqlCommand()){}
没直接用过Closer();
不知道没这个

追问

Open;那个无所谓的 只是想不出问题所在 纠结啊

第4个回答  2012-06-01
StudentID 是什么类型的数据?int ?string?追问

int

相似回答