我试图在插入oracle数据库时使用C#进行回车,但我似乎无法正确使用它。
我知道它的CHR(13)但是当我在字符串上运行替换时,它会替换我用来标记回车的特定字符,但是当插入发生时它会出现“CHR(13)”而不是回车。
这就是我正在使用的:
txt = txt.Replace("|", "' ||CHAR(13)|| '");
我也试过设置一个变量并给它一个char(13)的calue但结果相同。
INSERT INTO people (id, first_name, last_name, txt) VALUES ('" + id + "', '" + record.first_name + "', '" + record.last_name + "', '" + txt + "')";
输出:
INSERT INTO people (cust_sid, first_name, last_name, notes) VALUES ('10', 'steve', 'man','thisistext ||CHR(13)|| 07, more:more, ||CHR(13)')
任何人都可以让我知道我做错了什么。
谢谢,
答案 0 :(得分:1)
您的问题是最后一个' |'在txt
结束时。绝对有可能对此进行分类并做你正在尝试做的事情,但正如其他人在评论中所说,请不要。
考虑一下,如果您的变量txt
包含以下内容:
He'll do just fine
你将如何处理'
角色,更重要的是你真的想要这样做?
绑定变量就像培根 - 它们使一切变得更好:
// OracleConnection conn;
int id = 1;
string txt = "this is text|more:more, |";
OracleCommand cmd = new OracleCommand(
"insert into people (id, first_name, last_name, txt) values " +
"(:ID, :FIRST, :LAST, :TXT)", conn);
cmd.Parameters.Add("ID", id);
cmd.Parameters.Add("FIRST", "steve");
cmd.Parameters.Add("LAST", "man");
cmd.Parameters.Add("TXT", txt.Replace("|", Environment.NewLine));
cmd.ExecuteNonQuery();
如果您要插入多条记录,那么您希望以不同的方式执行此操作(声明参数一次,使用不同的值执行多次),但适用相同的基本概念。