oracle查询记录插入,我应该使用哪种查询语法在Oracle数据库中插入记录?
我是一個初學者,試圖用C#創(chuàng)建一個簡單的程序來插入和更新Oracle數據庫中的記錄.我已經成功地連接到數據庫,但是我的SQL語句出現異常,該異常指出不支持(?)符號.為什么會出現此異常,該如何解決?
我的代碼是:
private void btnSave_Click(object sender, EventArgs e)
{
OracleConnection con = null;
try
{
con = new OracleConnection();
string constr = "Data source=XE; User ID=cloudester; Password=cloudester123;";
if (con.State != ConnectionState.Open)
{
try
{
con.ConnectionString = constr;
con.Open();
//MessageBox.Show("Successfull connection");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception caught");
}
}
if (con.State == ConnectionState.Open)
{
string str = "Insert into EMP_DETAIL(EmpId, Name, Age)";
str += "values (?,?,?)";
OracleCommand cmd = new OracleCommand();
cmd.CommandText = Text;
cmd.Connection = con;
cmd.Parameters.Add(new OracleParameter("EmpId", OracleDbType.Varchar2)).Value = txtEmpId;
cmd.Parameters.Add(new OracleParameter("Name", OracleDbType.Varchar2)).Value = txtName;
cmd.Parameters.Add(new OracleParameter("Age", OracleDbType.Int16)).Value = int.Parse(txtAge.Text);
cmd.ExecuteNonQuery();
}
}
catch { ... }
}
解決方法:
您需要為命令使用named參數
string str = "Insert into EMP_DETAIL(EmpId, Name, Age) values (:EmpId, :Name, :Age)";
OracleCommand cmd = new OracleCommand();
cmd.CommandText = str; //cmd.CommandText = Text; not sure why did you use Text here
cmd.Connection = con;
cmd.Parameters.Add(new OracleParameter("EmpId", OracleDbType.Varchar2)).Value = txtEmpId;
cmd.Parameters.Add(new OracleParameter("Name", OracleDbType.Varchar2)).Value = txtName;
cmd.Parameters.Add(new OracleParameter("Age", OracleDbType.Int16)).Value = int.Parse(txtAge.Text);
cmd.ExecuteNonQuery();
標簽:query-parameters,oracle,sql-insert,c
來源: https://codeday.me/bug/20191028/1952377.html
總結
以上是生活随笔為你收集整理的oracle查询记录插入,我应该使用哪种查询语法在Oracle数据库中插入记录?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑无法开机怎么入u盘重装系统 电脑无法
- 下一篇: linux php常用命令,php调用L