c# - 如何将数字值插入到 oracle db
问题描述
我的代码有问题。我的代码工作正常,但我想在我的 oracle 表中插入一个十进制数字(oracle 中的字段类型是数字)。
“Gewicht”是一个文本字段,用户必须在其中输入一个十进制数字。实际上我可以插入完整的数字,但我不能插入十进制。
我的 oracle 数据字段:TOUR - VARCHAR2 (20 BYTE) GEWICHT - NUMBER
我对编程没有太多经验,所以我会尽力而为。它是我的第一个脚本 :)。
private void insert()
{
try
{
String connectionString = "Data Source = (DESCRIPTION = " +
"(ADDRESS = (PROTOCOL = TCP)(HOST = IP-Adress)(PORT = 1521))" +
"(CONNECT_DATA =" +
" (SERVER = DEDICATED)" +
" (SERVICE_NAME = NAME)" +
")" +
");User Id = USER;password=password;";
OracleConnection con = new OracleConnection();
con.ConnectionString = connectionString;
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandText = "insert into TABLENAME (TOUR,GEWICHT) values ('" + this.comboBox1.Text + "'," + Gewicht.Text+ ")";
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Erfolgreich eingefügt");
comboBox1.Text = String.Empty;
Gewicht.Clear();
viewdata();
}
catch (Exception ex)
{
MessageBox.Show("Fehler");
}
解决方案
您的插入查询字符串中缺少引号。在任何情况下,请使用以下参数:
cmd.CommandText = "insert into TABLENAME (TOUR,GEWICHT) values (@tour,@wicht)";
cmd.Parameters.Add("@tour", OracleDbType.NVarChar2).Value = this.comboBox1.Text;
cmd.Parameters.Add("@wicht", OracleDbType.Decimal).Value = Decimal.Parse(Gewicht.Text);
推荐阅读
- javascript - 获取每个元素的第一个锚点的 href 值
- ethereum - 未捕获(承诺中)错误:返回错误:执行恢复
- php - 如何在下面的代码中利用 preg_replace for xss?
- javascript - 如何在反应中多选的所有选项中插入复选框?
- android - 数据库参考仅通过 URL 起作用
- django - Docker django 项目中的 FileNotFoundError 即使文件存在
- javascript - 在 req.user 中传递数据 javascript-express
- sql - 组的 postgresql avg(count)
- c++ - 如何在 C++ 类中初始化具有非固定长度的数组?
- rust - 与相关排序同时添加整数不能按预期工作