首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-11-08 
新手求教C# 更新access 数据库的问题窗体是这样的单击按钮代码private void button1_Click(object sender,

新手求教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

热点排行