问题描述
- 在Web中使用DataAdapter.Update为何会报错?
-
跟同学合作做网站,我负责数据库方面,这是我写的一个更新页面数据的方法,运行到Update的时候总是会提醒错误,说是方法调用方式错误,在别的地方看到说在Web中不能使用Update? 想问一下这个地方是什么原因?该如何修改?
解决方案
问题描述有字数要求,代码如下:
public static void cmdUpdate(string uname ,Users user)//使用Users类传递参数
{
Users mduser = user;
string mStrconstr = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = E:AccessDatabase1.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();
}
}
}
时间: 2025-01-21 02:05:08