日期:2014-05-18  浏览次数:20485 次

新手请教: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