请教大家一个问题!
为什么数据库中更新不了!
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