C#和Oracle回车

时间:2015-11-30 10:18:39

标签: c# oracle

我试图在插入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)')

任何人都可以让我知道我做错了什么。

谢谢,

1 个答案:

答案 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();

如果您要插入多条记录,那么您希望以不同的方式执行此操作(声明参数一次,使用不同的值执行多次),但适用相同的基本概念。