新手请教:asp.net写数据库
所给代码均可以通过执行,有几点不明白的地方,盼指教!
1,
SqlConnection con = new SqlConnection( "server=localhost;database=;uid=;pwd= ");
con.Open();
SqlCommand com = new SqlCommand( "reg ", con);
com.CommandType = CommandType.StoredProcedure;
SqlParameter sp = new SqlParameter( "@user ", SqlDbType.VarChar, 50);
sp.Value = Request[ "user "];
com.Parameters.Add(sp);
com.ExecuteNonQuery();
Response.Write( " <script> alert( '注册成功! ');location= 'Default.aspx ' </script> ");
此段代码是调用一个数据库里的存储过程(reg)实现注册功能,
可是没有发现关闭 释放资源的语句!
这个关闭 资源的释放 是本来就少了呢?还是有什么隐式程序实现了?
2,
一个新闻发布系统,是类和界面分离的方式实现的,该方法也可以执行,是通过缓存来实现一个自动添加的功能~
撇开自动不自动不谈,就拿新闻发布来讲,用这种方法有什么好处? 我直接通过string写到数据库里不就可以了么?
3,
接问题2
private const string SQL_INSERT_NEWSINFO = "INSERT INTO newsinfo VALUES(@title,@data,@date, @imageurl,@category) ";
private const string PARM_NEWS_TITLE = "@title ";//定义
SqlParameter[] newsParms = GetParameters();//获取缓存参数
newsParms[0].Value = newsTitle;//给参数赋值
foreach (SqlParameter parm in newsParms)
cmd.Parameters.Add(parm);//遍历,并填加到sqlcommand命令中
parms = new SqlParameter[] {
new SqlParameter(PARM_NEWS_TITLE, SqlDbType.NVarChar,20),
……
}//缓存不存在的情况下,建立参数列表
然后执行;
private const string PARM_NEWS_TITLE = "@title ";
这行,是赋值还是什么?
盼赐教!!!
[解决办法]
SqlConnection con = new SqlConnection( "server=localhost;database=;uid=;pwd= ");
con.Open();
SqlCommand com = new SqlCommand( "reg ", con);
com.CommandType = CommandType.StoredProcedure;
SqlParameter sp = new SqlParameter( "@user ", SqlDbType.VarChar, 50);
sp.Value = Request[ "user "];
com.Parameters.Add(sp);
com.ExecuteNonQuery();
con.Closed()//可能是忘关了
Response.Write( " <script> alert( '注册成功! ');location= 'Default.aspx ' </script> ");
[解决办法]
1.我觉得本来就少了。
2.愚昧没看明白。
3.PARM_NEWS_TITLE 不就是一个参数的名称吗?
------解决方案--------------------
1. 上面几位已经说了,估计是忘写了
2. 用这种方面,系统的可移值性比较好。比如说,现在用的是SqlServer数据库,随着需要的改变,要用Oracle数据库了,Oracle数据库的SQL语句与Access是不同的,如果按楼主说的,那皆不是要重新写一个新闻系统了。而现在分层的话,只要写一个支持Oracle的数据层就可以了,其他的全部不用改
3. private const string PARM_NEWS_TITLE = "@title "; 这句的意思是定义一个常量PARM_NEWS_TITLE, 给他赋值为@title。常量定义好后,以后就不能变了。而且常量是静态的(不能用static关键字显式表示),被所有的对象共享,节省内存。
[解决办法]
帮顶.