string Sql = "Insert into News(Title,Content,IsHot,Regdate) values(@Title,@Content,@IsHot,@Regdate)";
 OleDbParameter[] pram={
            new OleDbParameter("@Title",this.Title.Text),
            new OleDbParameter("@Content",this.Content.Value),
            new OleDbParameter("@IsHot",Convert.ToBoolean(NewsRadi.SelectedValue)),
            new OleDbParameter("@Regdate",this.Regdate.Text)
        };
        OleDbDataReader NewsAdd=Class.sessting(Sql,pram);
这样有什么好处? 
直接用 SQL=“Insert into News(Title,Content,IsHot,Regdate) values(‘”+Title.Text+“’,‘”+Title.Text+“’,‘”+Title.Text+“’,‘”+Title.Text+“’)"; 也可以啊,但是我看都大多人都用上面的OleDbParameter,希望大家指点~~

解决方案 »

  1.   


     string Sql = "Insert into News(Title,Content,IsHot,Regdate) values(@Title,@Content,@IsHot,@Regdate)";
     OleDbParameter[] pram={
                new OleDbParameter("@Title",this.Title.Text),
                new OleDbParameter("@Content",this.Content.Value),
                new OleDbParameter("@IsHot",Convert.ToBoolean(NewsRadi.SelectedValue)),
                new OleDbParameter("@Regdate",this.Regdate.Text)
            };
            OleDbDataReader NewsAdd=Class.sessting(Sql,pram);
    如果我的数据库表有100个字段,难道用连接字符串啊,这样很麻烦,对于'' 和"" 这两种情况连接字符串很容易出错。 
    如果使用OleDbParameter为占位符复制,不容易错啊
      

  2.   

    1减少出错的机会
    2防止SQL注入攻击