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

关于C#廉洁ACCESS数据库后 使用UPDATE更新数据库报错的有关问题

2013-04-21 
关于C#廉洁ACCESS数据库后 使用UPDATE更新数据库报错的问题!代码如下 private void button1_Click(object

关于C#廉洁ACCESS数据库后 使用UPDATE更新数据库报错的问题!
代码如下
 private void button1_Click(object sender, EventArgs e)
        {
            string number = textBox1.Text;
            string password = textBox2.Text;
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =图书馆.mdb";
            conn.Open();
            string sql = "select * from atable where anumber= '" + number + "'";
            OleDbCommand cmd = new OleDbCommand(sql,conn);
            OleDbDataAdapter oleda = new OleDbDataAdapter(sql,conn);
            OleDbCommandBuilder olecb = new OleDbCommandBuilder(oleda);
            DataTable oledt = new DataTable();
            oleda.Fill(oledt);
            object result = cmd.ExecuteScalar();
            if (result != null)
            {
                if (oledt.Rows[0]["password"].ToString() == textBox2.Text.ToString())
                {
                    if (textBox3.Text == textBox4.Text)
                    {
                        if (MessageBox.Show("确定修改密码吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            oledt.Rows[0]["password"] = textBox3.Text;
                            oleda.Update(oledt);
                            MessageBox.Show("修改成功!");
                            this.Close();
                            Form 管理员界面 = new 管理员界面();


                            管理员界面.Show();
                        }
                    }
                    else MessageBox.Show("两次输入的新密码不一致,请重新输入");

                }
                else MessageBox.Show("原密码错误,请重新输入");
            }
            else MessageBox.Show("查无此管理员,请检查用户名是否输入错误。");
            conn.Close();
            conn.Dispose();
        }

报错:UPDATE 语句的语法错误。
[解决办法]
那就断点调试,看看sql语句是啥呗。
[解决办法]
看看update前后变量的值传递符不符合数据库字段的要求
学习学习,顺便接分
[解决办法]
 oleda.Update(oledt);
改成
oleda.Update(oledt,oledt.Tables[0].TableName);
看看
[解决办法]
oledt,换位dataSet.
[解决办法]
类似这个

                SqlDataAdapter sda = new SqlDataAdapter();
                SqlCommand sqlcomd = new SqlCommand();
                SqlParameter[] sqlparam=new SqlParameter[2];
                sqlparam[0]=new SqlParameter("@password", textBox3.Text);
                sqlparam[1]=new SqlParameter("@anumber",number);
                sqlcomd.CommandText = "update atable  set password=@password WHere anumber=@anumber";                sqlcomd.Connection = conn;
                sqlcomd.Parameters = sqlparam;
                sda.UpdateCommand = sqlcomd;
[解决办法]
 olecomd.Parameters.Add(oleparam)

这个可以有吧?
[解决办法]

引用:
引用:
olecomd.Parameters.AddRange(oleparam);

有没有办法让我这种格式的语句能执行呢 就是通过OLEDBADAPTER.UPDATA(DATATABLE)执行



现在就是让OLEDBADAPTER去执行啊,如果你是直接从SqlDataSource1去配置数据库,最后他也是会转成
"update atable  set password=@password WHere anumber=@anumber这种形式的,只不过他是有可视介面去给你选择,然后操作

热点排行