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

问题描述

在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();
            }
        }

    }
时间: 2024-09-03 03:11:34

web-在Web中使用DataAdapter.Update为何会报错?的相关文章

ssh使用tomcat中配置好的c3p0数据源报错

问题描述 ssh使用tomcat中配置好的c3p0数据源报错 tomcat中对应项目的xml文件配置为: <?xml version="1.0" encoding="UTF-8"?> <Context path="/Village" docBase="D:WorkspacesMyEclipse 10webprojectVillageWebRoot" reloadable= "true" p

eclipse中tomcat使用tomcat插件启动报错

问题描述 eclipse中tomcat使用tomcat插件启动报错 SEVERE: The web application with context path [/manager] was not deployed because it contained a deployment descriptor [D:Tomcat 7.0webappsmanagerMETA-INFcontext.xml] which may include configuration necessary for the

spring mvc-想把用户名存在session中 在方法中加request参数后运行报错 求指教~

问题描述 想把用户名存在session中 在方法中加request参数后运行报错 求指教~ 我用的是spring+hibernate~ 修改后: public class LoginAction extends SimpleFormController{ private Login login; private String viewPage; private String successPage; //实现onSubmit()方法 public ModelAndView onSubmit(Ob

java maven-maven项目中的pom.xml第一行报错

问题描述 maven项目中的pom.xml第一行报错 maven项目中的pom.xml第一行报错:Failure to transfer org.apache.maven:maven-parent:pom:18 from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central h

update无效-mybatis+spring+strust2 后update操作不报错但没起效果

问题描述 mybatis+spring+strust2 后update操作不报错但没起效果 日志如上图 sql语句文件如上图 有两个疑问: 1 做insert操作无任何问题,update 操作不报错,就是更新无效果,数据还是原来的数据. 2 sql语句的配置xml文件中判断了if xxx!=null 但是日志里打印出来的sql还是有null (如图2) 解决方案 你的if条件有问题,如果你的参数里面已经有title等参数,就应该写为title!=null而不是带#的 解决方案二: http://

oracle-ORACLE 触发器中 使用游标查询 本表 报错ORA-04091

问题描述 ORACLE 触发器中 使用游标查询 本表 报错ORA-04091 racle 触发器. 监听表A 更新 更新后触发. 其中 使用游标查询表A 数据. OPEN 游标时 会报 ORA-04091:表A发生了变化,触发器/函数不能读它 于是增加了自定义事物 pragma autonomous_transaction; 增加事物之后不报错了.但是OPEN 的游标 没有获取到任何数据. 想做到的效果是 是这样. 比如说表A里面有4条数据 1 aaaa 2 bbbb 3 cccc 4 dddd

windows update更新失败报错解决方法

  可能原因:网络环境临时出错,或者相关权限未开启. windows update更新失败报错解决方法:Win键+R键输入"services.msc"回车,确认Background Intelligent Transfer Service.Cryptographic.Software Protection.Windows Update服务,开启服务并改为开机自动启动.或者配置DNS为:首选4.2.2.1;备用4.2.2.2.或者以管理员身份运行命令提示符,输入"net sto

wamp环境中,本可以使用GD库,但在zend中无法使用GD库,会报错这是为什么,出了什么问题

问题描述 wamp环境中,本可以使用GD库,但在zend中无法使用GD库,会报错这是为什么,出了什么问题 在zend中无法使用GD库,会报错提示GD库函数未定义 解决方案 http://blog.csdn.net/authorzhh/article/details/7566853 看看是不是扩展没有开 解决方案二: 扩展开了, extension=php_gd2.dll 前分号去掉了,还是没解决

mysql-java中的sql语句为何会报错,而到了workbench就可以执行

问题描述 java中的sql语句为何会报错,而到了workbench就可以执行 rt基本上是timestamp的格式,比如insert into table values ('2015-03-17 00:00:00');这句话在java通过jdbc执行就会报错,而直接在workbench下面操作就没有问题为什么会这样? 解决方案 可能是字符串单引号等引起的,打印代码中的字符串跟workbench中比较 解决方案二: insert into table(字段1,字段2....) value( 值1