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

一个有关问题

2011-12-26 
请教大家一个问题!为什么数据库中更新不了!stringmytitletitle.Textstringmycontentcontent.Valuestri

请教大家一个问题!
为什么数据库中更新不了!

  string   mytitle   =   title.Text;
                string   mycontent   =   content.Value;
                string   ConnectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   +   Server.MapPath( "..//bbs//netdatamdb//netrencaiwang.mdb ");

                OleDbConnection   myconn   =   new   OleDbConnection(ConnectionString);
                myconn.Open();
                string   cmdText   =   @ "update   peixun   set   ptitle= ' "+mytitle+ " ',pcontent= ' "+mycontent+
                        @ " '     where   id= "+Session[ "newsid "];
                OleDbCommand   mycommand   =   new   OleDbCommand();
                mycommand.Connection   =   myconn;
                mycommand.CommandText   =   cmdText;
                mycommand.ExecuteNonQuery();
                myconn.Close();
                Response.Write( " <script> alert( '更新成功! ') </script> ");

[解决办法]
调试到string cmdText = @ "update peixun set ptitle= ' "+mytitle+ " ',pcontent= ' "+mycontent+ @ " ' where id= "+Session[ "newsid "];
看看cmdText是什么内容。会不会是Session[ "newsid "]没内容?
[解决办法]
调试到string cmdText = @ "update peixun set ptitle= ' "+mytitle+ " ',pcontent= ' "+mycontent+ @ " ' where id= "+Session[ "newsid "];
看看cmdText是什么内容。会不会是Session[ "newsid "]没内容?

[解决办法]
程序错了,怎么每一句后面有分号啊,
[解决办法]
string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = " + Session[ "newsid "].ToString();

[解决办法]
如果你的id是字符类型的,那就像amandag(高歌)说的那样,判断id的时候用Session[ "newid "].ToString();
Session[ "newid "]是object类型,要转成string类型才能比较!
[解决办法]
如果数据库里 id是整数类型
string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = " + Convert.ToInt32(Session[ "newsid "]);

如果数据库里 id是字符类型
string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = ' " + Convert.ToString(Session[ "newsid "]) + " ' ";


[解决办法]
用断点跟踪看cmdText的数据是否正确..
------解决方案--------------------


顶。。
[解决办法]
SQL语句打出来看看,对不对,
[解决办法]
就是,断点跟踪一下,问题就很清楚了。
[解决办法]
估计是id没有传入值
string cmdText = @ "update peixun set ptitle= ' "+mytitle+ " ',pcontent= ' "+mycontent+
@ " ' where id= "+Session[ "newsid "];
改为string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = " + Convert.ToInt32(Session[ "newsid "].ToString());
[解决办法]
1。
如果你的id是字符类型的,那就像amandag(高歌)说的那样,判断id的时候用Session[ "newid "].ToString();
Session[ "newid "]是object类型,要转成string类型才能比较!
========
这里会自动 Session[ "newid "].ToString();


估计是id没有传入值
string cmdText = @ "update peixun set ptitle= ' "+mytitle+ " ',pcontent= ' "+mycontent+
@ " ' where id= "+Session[ "newsid "];
改为string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = " + Convert.ToInt32(Session[ "newsid "].ToString());
=======
两者输出你看看,难道会不一样?

不过一种情况,当 Session[ "newsid "] == null ,确实不一样,而且后者还给丢异常,哈哈

总结,比较合理的方法是明确调用 Session[ "newsid "].ToString()


2。
输出 cmdText 看看是虾米

3。
mycommand.ExecuteNonQuery();
myconn.Close();
Response.Write( " <script> alert( '更新成功! ') </script> ");
========
事实上你要判断 ExecuteNonQuery() 的返回值,才能确认是否更新成功

int affectedRows = mycommand.ExecuteNonQuery(); // 返回受影响的记录数
myconn.Close();
if(affectedRows > = 1 )
Response.Write( " <script> alert( '更新成功! ') </script> ");
else
Response.Write( " <script> alert( '未更新任何行。 ') </script> ");
[解决办法]

if(不能更新数据)
{
if(报错)
{
查错;
}
else
{
文件夹权限设置;
}
}
[解决办法]
vs环境中设个断点看一下便知道了,
[解决办法]
Session[ "newsid "]改为
Session[ "newsid "].tostring();
[解决办法]
把 cmdText Reaponse.Write出来
在到查询分析器测试下不就ok拉
[解决办法]
程序错了,怎么每一句后面有分号啊,
----------------------------------------
你会不会?你是用什么语言?没弄清楚就别J8废话
[解决办法]
还没解决吗?
[解决办法]
amandag(高歌) ( ) 信誉:98 Blog 加为好友 2007-7-7 19:41:21 得分: 0



string cmdText = "update peixun set ptitle= ' " + mytitle + " ',pcontent= ' " + mycontent + " ' where id = " + Session[ "newsid "].ToString();

想法跟他一样




[解决办法]
你id是什么类型数据??
要把Session[ "newsid "]改为:


如果是int Convert.ToInt32(Session[ "newsid "].ToString());
如果是String Convert.ToString(Session[ "newsid "].ToString());
[解决办法]
jf

热点排行