单引号写入数据库,并结合写成函数和动静态类中方法对比小结

近日,研究问题的时候,看到有人小结单引号写入数据库的时候写成为函数,就有感,自己也总结下,到底如何区别,好几的知识点联系一起小结下:(gaosha_系统)

string content = Editor1.Text;  要改成string content = Editor1.Text.Replace ("'","''"); 这是因为:

sql = "insert into New (BigClassID,Title,Content,Author,AddTime,ReadCishu,news_pic,newspic_link,flash_http_type) Values(" + classid + ",'" + title + "','"+content + "','" + author + "','" + DateTime.Now + "',1,'"+uploads_pic_hhw +"','ztView.aspx?id=','"+TextBox2 .Text+"')";

如果文本框中含有单引号( '),这样写是有问题的,所以要么将一个单引号替换成两个单引号( ' '),要么用传参数的方法。

下面,我也写下函数,还写成类文件中的方法直接调用。

简单来说想一些工具类 的方法会被定义为static 直接类名可以调用,就是静态的无需实例化,动态的必须实例化。静态的哪里访问都只有一个内存地址,动态的各自访问的内存地址不同。看情况应用而已.

类文件内写成如下形式:

dbcen类文件中,有代码如下:

public static String text_encode(string str)//编辑器或者特殊情况文本有单引号时候,取代单引号为两个单引号,类方法可以直接调用,快 
{
    str = str.Replace("'", "''");
    return str;

public  String text_enconde_shilihua(string str)//方法要实例化,与上区别也就是动态,实例,上是静态,全局...的区别
    {
        str = str.Replace("'","''");
        return str;
    }

也可以在主程序cs页面内写成函数形式

public string text_encode_function(string str)//写成函数形式
    {
        str = str.Replace ("'","''");
        return (str);
    }

 应用如下:

INSETR INTO DB_TABLE(AA,BB) VALUES(dbcen.text_encode(textbox1.text),dbcen.text_encode(textbox2.text));    这句就用了上单引号写入库,而不怕出错。很好用哦

 实际测试效果如下

protected void Page_Load(object sender, EventArgs e)
    {
                Response.Write(text_encode_function("1234'"));//测试函数text_encode_function的返回结果
        Response .Write (dbcen .text_encode ("1234'"));//写方法在类文件中,测试输出结果
        dbcenter a=new dbcen();
        Response .Write (a.text_enconde_shilihua ("1234'"));
}

输出结果是相同的 : 1234'' 1234'' 1234''

也许这就是动态和静态的区别吧.新手要多多总结哦。我们不在乎我们得到多少,获得多少,更多的是在乎发现和探究的过程,并一直保持该颗心活泼.

原文地址:https://www.cnblogs.com/pyman/p/2015775.html