单引号写入数据库,并结合写成函数和动静态类中方法对比小结
近日,研究问题的时候,看到有人小结单引号写入数据库的时候写成为函数,就有感,自己也总结下,到底如何区别,好几的知识点联系一起小结下:(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''
也许这就是动态和静态的区别吧.新手要多多总结哦。我们不在乎我们得到多少,获得多少,更多的是在乎发现和探究的过程,并一直保持该颗心活泼.