读书人

新手求教C# 更新access 数据库的有关问

发布时间: 2013-11-08 17:52:14 作者: rapoo

新手求教C# 更新access 数据库的问题
窗体是这样的

新手求教C# 更新access 数据库的有关问题

单击按钮代码
private void button1_Click(object sender, EventArgs e)
{
DBHelper helper = new DBHelper();
String sql1 = string.Format("select * from employee_log where [员工账号]={0} and [员工密码]={1}",all.all_emid.Trim(),textBox1.Text.Trim());
//String sql2 = string.Format("update [employee_log] set [员工密码]={0} where [员工账号]={1}",textBox1.Text.Trim(),all.all_emid.Trim());
String sql2 = "update employee_log set [员工密码]=" + textBox1.Text + " where [员工账号]=" + all.all_emid + "";
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "")
{
MessageBox.Show("密码不能为空!");
}
else if (textBox2.Text.Trim() != textBox3.Text.Trim())
{
MessageBox.Show("密码不一致,请核对.");
}
else if (helper.setS(sql1))
{
if (helper.setDS(sql2))
{
MessageBox.Show("修改成功");
}
}
else MessageBox.Show("不存在此密码.");

}
DBHelper 是个连接数据库的类
public class DBHelper
{
private OleDbConnection conn;
private OleDbDataAdapter oda = new OleDbDataAdapter();
private OleDbCommand cmd;
private DataSet myds = new DataSet();
public DBHelper()
{

conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\\visual studio 2010\\Projects\\hotel_management\\hotel_management\\bin\\Debug\\Database1.accdb");
}
public DataSet getDS(string strSQL)//获得数据;
{
conn.Open();
myds = new DataSet();
oda = new OleDbDataAdapter(strSQL, conn);
oda.Fill(myds);
return myds;
}

public DataSet getDS2(string strSQL, int si, int mi)
{
conn.Open();
myds = new DataSet();
oda = new OleDbDataAdapter(strSQL, conn);
oda.Fill(myds, si, mi, "tab1");
conn.Close();
return myds;

}

public bool setDS(string strSQL)//非查询操作;
{
conn.Open();


cmd = new OleDbCommand(strSQL, conn);
cmd.ExecuteNonQuery();
conn.Close();
return true;
}
public bool setS(string strSQL)
{
conn.Open();
cmd = new OleDbCommand(strSQL, conn);
if (cmd.ExecuteReader().HasRows)
{
conn.Close();
return true;
}
else
{
conn.Close();
return false;
}
}


}
然后呢 all.all_emid 是上个窗体登陆时候记录员工账号字段的;

能运行成功,但是就是运行结束后到access 中去查看数据的时候密码没有改变;
我想问问,是我代码什么逻辑问题吗? 我查了好多但是都没发现。想问问,能帮帮我吗,我是新手请帮助下我,谢谢。
c#关于access数据库更新操作
[解决办法]
String sql2 = "update employee_log set [员工密码]='" + textBox1.Text + "' where [员工账号]="' + all.all_emid + "'";
[解决办法]

引用:
String sql2 = "update employee_log set [员工密码]='" + textBox1.Text + "' where [员工账号]="' + all.all_emid + "'";

textBox.Text改为
textBox1.Text.Trim()比较好
[解决办法]
打断点,把你的sql复制出来执行就知道了
[解决办法]
断点,把你错误卡在哪里截图上来,别一上来就贴上一堆代码,拿重要的出来
[解决办法]
引用:
Quote: 引用:

打断点,把你的sql复制出来执行就知道了

那个sql 语句貌似没问题的
能执行成功 然后断电 也设在这里
String sql2 = "update employee_log set [员工密码]=" + textBox1.Text + " where [员工账号]=" + all.all_emid + "";
然后执行到DBHelper类中的cmd.ExecutNonQuery();返回值为1,然后就执行完成了运行到最后了 “修改成功”
我再去看access 表格的时候 还是没有改变~ 就是这个情况


你把那sql直接再access里面执行
[解决办法]
引用:
我的账号密码字段是数字的,所以你说的那个单引号是没什么实质改变的
我弄成文本字段的时候您的建议也能运行成功 但是还是那个问题 成功了 但是access 文件里面的内容还是没有改变,


all.all_emid 这个是哪里来的,或许数据库中压根儿就没有这个ID

读书人网 >C#

热点推荐