c# - 用逗号插入命令
问题描述
我在 Oracle 中插入一行。但问题是我想在 companyname 列中插入逗号,由于插入语句而失败。
想知道是否可以使用以下插入命令添加逗号或撇号?
string id=1;
string orgnr = "123123";
comanyname = "Test,company";
string sql =
string.Format("INSERT INTO VENDORS(ID, ORGNR, COMPANYNAME) " +
"VALUES({0}, '{1}', '{2}')", id, orgnr, companyname);
update = new OracleCommand(sql, connection);
update.Connection.Open();
update.ExecuteNonQuery();
update.Connection.Close();
解决方案
它失败了,因为您已将 'id' 声明为字符串,并且您一直试图在没有单引号的情况下插入它。字符串参数中还有要转义的非法字符。你想摆脱这些吗?请继续阅读...
您的代码中存在一个更大的问题,即您没有使用参数化查询。这段代码将宿主应用程序变成了一个 SQL 注入游乐场。
请看下面的代码:
int id=1;
string orgnr = "123123";
string companyName = "Test,company";
string connectionString = "Data Source= oraDB;User Id=;Password=;";
OracleConnection connection = new OracleConnection(connectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = connection;
cmd.CommandText = "INSERT INTO VENDORS(ID, ORGNR, COMPANYNAME) VALUES (:1, :2, :3)";
cmd.Parameters.Add(new OracleParameter("1",
OracleDbType.Int32,
id,
ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("2",
OracleDbType.Varchar2,
orgnr,
ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("3",
OracleDbType.Varchar2,
companyName,
ParameterDirection.Input));
int rowsUpdated = cmd.ExecuteNonQuery();
connection.Dispose();
推荐阅读
- javascript - Socket.io 从 Firefox 插件连接到 localhost
- php - 如何使用 jquery 获取图像到 Laravel
- python - 现代 Pytorch 或 Tensorflow 中的并行简单优化
- powerpoint - 从另一张幻灯片复制和粘贴后定位 Powerpoint 表格
- databricks - 仅当直接在 databricks 笔记本上运行时才会出现 Numba RuntimeError
- python - 从 Python BeautifulSoup 中的列表创建 html 表
- laravel - 如何使用数据透视表中的数据过滤 Eloquent 集合
- android - BottomNavigationView 项目背景
- r - 更改 likert() 绘图颜色
- python - ValueError:无法创建张量