关于aspnet连接ACCESS的一些小结!


Posted on February 26, 2007


刚做这个网站的时候,因为考虑到用SQL数据库要另外加钱的,所以考虑了一下还是用ACCESS,网站没有什么复杂的逻辑,用ACCESS应该可以了(实践证明是正确的!)

一想到ASPNET如何连接ACCESS的时候,我一开始就想到了用集据集的方法,因为一开始学ASPNET的时候,就跟丁老题学过数据集的用法,而且以前在学JSP的时候,和EJB的有些内容相似,可能技术内核不一样,只是有点神似吧,呵,我还没有能够完全了解一门技术啊!!

呵,先在网上到了点素材,开始做了,日志,读书笔记,以及留言板,都做好了,写数据库用的是数据集的方法,一开始还算正常,后来发现了问题了,如果数据过长,只能写进一部分内容,很奇怪,想来想去找不出原因,“会不会是哪里没有配置?”我心里这么想。

问题一直没有解决,直到昨天才有了新的发现:数据(一般为string 类型)在传输的过程中,不能超过1024个汉字(应该是2048个字节),这一点,我测试过了,不加任何符号,只写汉字,确实只有1024个,1024个以后的就被截断了。

所以只能放弃这种方法了,改用using System.Data.OleDb;感觉上是比较传统的方法,和ASP有点象。

string strSql = "INSERT INTO blog ([blog_title], [blog_content], [blog_time]) VALUES (" + "'" + @title + "','" + @content + "','" + @time + "')";

利用这样的一条SQL语句,就可以实现数据的添加!

但问题还是不断出现!

上述的SQL语句,VALUES的值用的都是局部变量,所以用了上述写法,但是上述变量只要含有“'”(如jm's website),就会出面问题:

问题很显然:

INSERT INTO blog ([blog_title], [blog_content], [blog_time]) VALUES ('title','content',2002-2-2 12:20:20')

如果content换成jm's website,那strSql 就变成:

INSERT INTO blog ([blog_title], [blog_content], [blog_time]) VALUES ('title',jm's website,2002-2-2 12:20:20');

很显然jm's中的'破坏了ASPNET的翻译过程。出现错误

但总不见得让不出现“'”吧?哪怎么可以?

在网上又是找了好几个小时,最后看到转义字符的一些概念,加了一条replace语名:

string content1 = Request.Form["content"].ToString();
string content = content1.Replace("'", "''");

成功了!

这也算是学习的心得,所以写下来,欢迎大家一起来讨论,交流才能提高啊! 


标签:N/A

 

在线学习答案查询入口
微信扫一扫
微信扫码联系