2 u010962786 u010962786 于 2014.11.24 09:52 提问

在Web中使用DataAdapter.Update为何会报错?

跟同学合作做网站,我负责数据库方面,这是我写的一个更新页面数据的方法,运行到Update的时候总是会提醒错误,说是方法调用方式错误,在别的地方看到说在Web中不能使用Update? 想问一下这个地方是什么原因?该如何修改?

1个回答

u010962786
u010962786   2014.11.24 09:53

问题描述有字数要求,代码如下:

public static void cmdUpdate(string uname ,Users user)//使用Users类传递参数
{
Users mduser = user;
string mStrconstr = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = E:\Access\Database1.accdb";//绝对路径,需配置
OleDbConnection mStrconn = new OleDbConnection();
mStrconn.ConnectionString = mStrconstr;
mStrconn.Open();
string mStrsql = "SELECT * FROM [user] WHERE username = " + "'" + uname + "'";

        //将数据库中的数据添加到DataSet
        DataSet mStrds = new DataSet();
        OleDbDataAdapter mStrda = new OleDbDataAdapter(mStrsql,mStrconn);
        mStrda.FillSchema(mStrds,SchemaType.Source,"user");
        mStrda.Fill(mStrds,"user");
        DataRow stbr = mStrds.Tables[0].Rows[0];

        //修改各个参数。  
        stbr.BeginEdit();
        stbr["username"] = mduser.Username;
        stbr["password"] = mduser.Pword;
        stbr["name"] = mduser.Name;
        stbr["unit"] = mduser.Unit;
        stbr["lrank"] = mduser.Lrank;
        stbr["researcharea"] = mduser.Research;
        stbr["telnum"] = mduser.Telnum;
        stbr["email"] = mduser.Email;
        stbr["admin"] = mduser.Isadm;
        stbr["secretary"] = mduser.Issec;
        stbr["teacher"] = mduser.Istea;
        stbr.EndEdit();

        //mStrds.Tables[0].Rows[0].AcceptChanges();

        //将DataSet中的数据返回到数据库
        OleDbCommandBuilder mStrcmdb = new OleDbCommandBuilder(mStrda);
        if (mStrds.HasChanges())
        {
            try
            {
                mStrda.Update(mStrds,"user");
            }
            catch (Exception ex)
            {
                throw ex;//可添加提示信息:如信息格式错误等。
            }
            finally
            {
                mStrconn.Close();
            }
        }

    }
Csdn user default icon
上传中...
上传图片
插入图片