Sql 语句中插入特殊字符怎么处理?

leoAAAA 2003-07-09 01:30:01
有一难题向各位高手请教,
环境C#, ASP.Net
使用Sql插入语句的时候,如果域包含有', 执行插入的时候就会报错,还有哪些特殊字符需要注意, 怎样处理?
谢谢

...全文
755 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
TLink 2003-07-09
  • 打赏
  • 举报
回复
插入的字符串用'' 代替'
要插入的字符串: txtUserName.Text.Trim().Replace("''","'");
ArLi2003 2003-07-09
  • 打赏
  • 举报
回复
'' replace '

or use:

where myname = 'ArLi[']Books'
luckysusan 2003-07-09
  • 打赏
  • 举报
回复
两种方法都可以:

1.valuetoinsert.replace("'","''") 将字符串的单引号替换成双引号
2.用存储过程实现存储
xjjhappy_88 2003-07-09
  • 打赏
  • 举报
回复
写方法对特殊字符进行encode,需要用时再decode
edobnet 2003-07-09
  • 打赏
  • 举报
回复
那到底要替换那些
请高手总结一下!
yohomonkey 2003-07-09
  • 打赏
  • 举报
回复
用两个单引号表示一个单引号。
cchinasp 2003-07-09
  • 打赏
  • 举报
回复
用''替换',就可以了
如果你查询中有[,请用[[]替换[
LineCorner 2003-07-09
  • 打赏
  • 举报
回复
upCMIC(大象), xrascal(横刀夺爱)的什么意思?
暗石绿 2003-07-09
  • 打赏
  • 举报
回复
string str=@"\d\d";
string strInsert = "insert into tab(field1) values('"+str+"')";
CMIC 2003-07-09
  • 打赏
  • 举报
回复
1.使用参数,方法如下:
SqlCommand cmicCmd=new SqlCommand("insert insert into cmicTable " +
" (Col1,Col2) " +
" values(@Col1,@Col2) ",cmicCn);
cmicCmd.Parameters.Add(new SqlParameter("@Col1",SqlDbType.Int));
cmicCmd.Parameters[0].Value=textBox1.Text;
cmicCmd.Parameters.Add(new SqlParameter("@Col2",SqlDbType.Int));
cmicCmd.Parameters[1].Value=textBox2.Text;
cmicCmd.ExecuteNonQuery();
2.重字符串:
string strSql="你的Sql语句";
strSql=strSql.Replace("'","''");
wwonion 2003-07-09
  • 打赏
  • 举报
回复
这样

string Sql_str = "insert into wendan(title,conect) values (@title,@conect)";
OleDbConnection Conn = new OleDbConnection(Connstr);

OleDbCommand My_cmd = new OleDbCommand(Sql_str, Conn);
Conn.Open();
My_cmd.Parameters.Add(new OleDbParameter("@title", OleDbType.VarChar,250));
My_cmd.Parameters.Add(new OleDbParameter("@conect", OleDbType.VarChar,8000));

My_cmd.Parameters["@title"].Value=title.Text;
My_cmd.Parameters["@conect"].Value=conect.Text;
My_cmd.ExecuteNonQuery();
Conn.Close();
wwonion 2003-07-09
  • 打赏
  • 举报
回复
这样

string Sql_str = "insert into wendan(title,conect) values (@title,@conect)";
OleDbConnection Conn = new OleDbConnection(Connstr);
OleDbCommand My_cmd = new OleDbCommand(Sql_str, Conn);
Conn.Open();
My_cmd.Parameters.Add(new OleDbParameter("@title", OleDbType.VarChar,250));
My_cmd.Parameters.Add(new OleDbParameter("@conect", OleDbType.VarChar,8000));

My_cmd.Parameters["@title"].Value=title.Text;
My_cmd.Parameters["@conect"].Value=conect.Text;
My_cmd.ExecuteNonQuery();
Conn.Close();
wacle 2003-07-09
  • 打赏
  • 举报
回复
用存储过程就不会出现这种情况。如
Create Procedure instable
(
@col1 varchar(20),
@col2 varchar(20)
)
as
Insert into AAA(COL1,COL2) VALUES(@col1,@col2)
wacle 2003-07-09
  • 打赏
  • 举报
回复
用存储过程就不会出现这种情况。如
Create Procedure instable
(
@col1 varchar(20),
@col2 varchar(20)
)
as
Insert into AAA(COL1,COL2) VALUES(@col1,@col2)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧