如何处理C#向SQLServer中插入记录时的单引号问题
这篇文章主要介绍了如何处理C#向SQL Server中插入记录时的单引号问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
10年的江海网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整江海建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“江海网站设计”,“江海网站推广”以来,每个客户项目都认真落实执行。
asp.net中使用c#, 向coredb.mybbs表中插入记录值(title, content)【文章的标题和内容】,由于content, title中可能包含单引号,直接使用sql的insert命令会报错,对此有两种处理方法,一种将单引号替换成两个单引号,第2种方法是使用存储过程。
表mybbs的格式定义如下:
create table [dbo].[mybbs] ( [id] [bigint] identity (1, 1) not null , [title] [char] (160) collate chinese_prc_ci_as null , [author] [char] (20) collate chinese_prc_ci_as null , [date_of_created] [datetime] null , [abstract] [char] (480) collate chinese_prc_ci_as null , [content] [ntext] collate chinese_prc_ci_as not null ) on [primary] textimage_on [primary]
1、C#向Sql Server中插入记录时单引好问题处理方法之一:将单引号用两个单引号替换:
sqlconnection coredb=new sqlconnection(); coredb.connectionstring= "workstation id=\"gqa-eric-lv\";packet size=4096;integrated security=sspi;" + "data source=\"gqa-eric-lv\";persist security info=false;initial catalog=coredb"; //单引号用""替换,以插入到sql server中; string title=textbox1.text.replace("",""); string content=textbox2.text.replace("",""); if(title.trim()==""||content.trim()=="")return; string insertcmd =@"insert into mybbs (title,content) values("+ title + "," +content+")"; sqlcommand mycommand = new sqlcommand(insertcmd,coredb); coredb.open(); sqldatareader myreader = mycommand.executereader(); myreader.close(); coredb.close();
2、C#向Sql Server中插入记录时单引好问题处理方法之二:使用存储过程来插入
1) 创建存储过程:
create proc insertmybbsproc(@title char(160), @author char(20), @content ntext) as insert into mybbs(title,author,content) values(@title, @author, @content)
2) 查询分析器中测试存储过程:
declare @title char(160) declare @author char(20) declare @content char(600) set @title=test title 3 set @author=david euler 3 set @content=it is the content 3 exec insertmybbsproc @title, @author, @content
3) c#中通过sqlcommand执行存储过程:
sqlconnection coredb=new sqlconnection(); coredb.connectionstring= "workstation id=\"gqa-eric-lv\";packet size=4096;integrated security=sspi;" + "data source=\"gqa-eric-lv\";persist security info=false;initial catalog=coredb"; string title=textbox1.text; string content=textbox2.text; if(title.trim()==""||content.trim()=="")return; //insertmybbsproc是向mybbs中插入数据的procedure: sqlcommand insertcmd = new sqlcommand("insertmybbsproc",coredb); insertcmd.commandtype=commandtype.storedprocedure;//命令类型为存储过程;下面定义参数对象: sqlparameter prm1=new sqlparameter("@title", sqldbtype.char,160); sqlparameter prm2=new sqlparameter("@author", sqldbtype.char,20); sqlparameter prm3=new sqlparameter("@content",sqldbtype.ntext,1073741823); prm1.direction=parameterdirection.input; prm2.direction=parameterdirection.input; prm3.direction=parameterdirection.input; //为insertcmd添加sql参数: insertcmd.parameters.add(prm1); insertcmd.parameters.add(prm2); insertcmd.parameters.add(prm3); //为sql参数赋值: prm1.value=title; prm2.value="david euler"; prm3.value=content; coredb.open(); int recordsaffected=insertcmd.executenonquery(); if(recordsaffected==1)response.write("< script>alert("+ "插入成功" +");< /script>"); coredb.close();
感谢你能够认真阅读完这篇文章,希望小编分享的“如何处理C#向SQL Server中插入记录时的单引号问题”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
文章标题:如何处理C#向SQLServer中插入记录时的单引号问题
链接地址:http://hbruida.cn/article/iiodio.html