| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1612 人关注过本帖
标题:[求助]C# command对象
取消只看楼主 加入收藏
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
结帖率:100%
收藏
 问题点数:0 回复次数:8 
[求助]C# command对象

我是一个新手,请教你们一个问题
我在page_load里写了一段代码:
OleDbConnection conn=DB.createConnection();
conn.Open();//数据库连接没有问题。
string str="insert into UserType values('4','555')";
OleDbCommand cmd=new OleDbCommand(str,conn);
cmd.ExecuteNonQuery();
conn.Close();

出现了一下错误 :
操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。

源错误:


行 93: string str="insert into UserType values('4','555')";
行 94: OleDbCommand cmd=new OleDbCommand(str,conn);
行 95: cmd.ExecuteNonQuery();//错误
行 96: conn.Close();
行 97:

各位高手给我指点一下

搜索更多相关主题的帖子: command 对象 
2007-01-10 11:17
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论] command对象
sql语句没有问题的,我在数据库里面试过了,我的表里就2个字段,而且都是文本型的。

雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-10 11:37
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论] command对象

public static OleDbConnection createConnection()
{
string dbname=System.Web.HttpContext.Current.Server.MapPath("database\\huayu.mdb");
// string strcon="PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA Source=C:\\database\\huayu.mdb";
string strcon="PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA Source="+dbname;
OleDbConnection conn = new OleDbConnection(strcon);
return conn;

}
只是连接类,应该没有问题,我昨天就用这个类连接的数据库。


雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-10 13:05
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论] command对象

好像还是不行啊


雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-10 13:29
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论] command对象

string str1 ="delete from UserType where UserTypeID='4'";
string str ="select * from UserType";
OleDbCommand cmd=new OleDbCommand(str,conn);
OleDbCommand cmd2=new OleDbCommand(str1,conn);
cmd.ExecuteNonQuery();//执行成功
cmd2.ExecuteNonQuery();//执行错误,但是sql语句在数据库中能执行。
conn.Close();
原因何在呀?请指点一下
错误信息:
无法从指定的数据表中删除。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 无法从指定的数据表中删除。

源错误:


行 94: OleDbCommand cmd2=new OleDbCommand(str1,conn);
行 95: cmd.ExecuteNonQuery();
行 96: cmd2.ExecuteNonQuery();
行 97: conn.Close();
行 98:

源文件: c:\inetpub\wwwroot\mytext1\usertype.aspx.cs 行: 96

堆栈跟踪:


[OleDbException (0x80004005): 无法从指定的数据表中删除。]



雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-10 13:54
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论] c#

用的,因为我设的是文本型的,我在数据库中试过了,好使的。但是我也发现一个问题,进行所有的数据检索都好使,就是 insert update delete 不好使。是不是数据库不能写入啊,或者是限制了数据库的写入啊


雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-10 16:54
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
我的数据库文件(access)右键属性———〉没有安全选项啊,可不可以打开数据库在里面设置啊,教教我啊。

雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-11 10:27
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 

操作必须使用一个可更新的查询。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:操作必须使用一个可更新的查询。

(c)原因初步分析:因为包含有“UPDATE”“INSERT”“UPDATE”等命令,需要对数据库文件本身进行写入操作,所以上述权限不能满足此需求,我们需要进一步放开权限。

a)D:\wwwroot\test\data\文件夹不变

b)D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:

允许 拒绝
完全控制 □ □
修改 □ □
读取及运行 √ □
列出文件夹目录 √ □
读取 √ □
写入 √ □

我昨天遇到的错误和上面的错误是一样的,但是我不知道怎么改呀,他上面的操作在哪儿设置啊


雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-11 10:59
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
我知道了, 我的xp系统

雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-11 11:32
快速回复:[求助]C# command对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037978 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved