Insert Firebird Database C#

2019-03-03 22:40发布

FbCommand fbCmm = 
      new FbCommand("INSERT INTO PRODUTO
                   (CODIGO,EAN,DESCRICAO,VAL_PRODUTO,VAL_CUSTO,CAT_PRECO)" 
                   + "Values (@txt_codigo.Text, @txt_ean, @txt_descricao,
                   @txt_valPro, @txt_valCus, @txt_catPre)", ConexaoFirebird.Conexao);

enter image description here]

What's wrong with that sentence? I did a open connection in other class - ConexaoFirebird.Conexao();

标签: c# firebird
2条回答
叛逆
2楼-- · 2019-03-03 23:23

You should use quote for decimal, string field types, your statement is correct but not clear, you can create clear sql text with sql command builder or you can use Command object of your connection.

查看更多
再贱就再见
3楼-- · 2019-03-03 23:29

You're executing a parameterized query without providing values for those parameters. See the documentation:

FbCommand cmd = new FbCommand("insert into t1(id, text) values (@id, @text);");
cmd.CommandType = CommandType.Text;

cmd.Parameters.Add("@id", 123);
cmd.Parameters.Add("@text", "my string");

cmd.ExecuteNonQuery();

Here they bind the values 123 and "my string" to the parameters named id and text respectively.

Also note that parameter names are generally rescticted to alphanumeric, so txt_codigo.Text isn't likely going to work.

查看更多
登录 后发表回答