Postgres - problems with NpgsqlDataAdapter insert
От | Evan Sherwood |
---|---|
Тема | Postgres - problems with NpgsqlDataAdapter insert |
Дата | |
Msg-id | BAY104-F30FB41BFF3DF5653E21E59B5E70@phx.gbl обсуждение исходный текст |
Список | pgsql-interfaces |
<div style="background-color:"><div class="RTE">Hi</div><div class="RTE"> </div><div class="RTE">I am having problems withthe NpgsqlDataAdapter. I created an insert command and when I call the update method, I get an error: ERROR: 42601:syntax error at or near":"</div><div class="RTE"> </div><div class="RTE">If I remove some of the columns from the insertstatement, it works. It seems like there is a limit to the length of the command text.</div><div class="RTE"> </div><divclass="RTE">I am using C# 2003 (.NET Framework 1.1) on Windowx XP.</div><div class="RTE"> </div><divclass="RTE"> </div><div class="RTE">I create the data adapter using the following code:</div><fontsize="2"><p class="RTE"></font><font color="#0000ff" size="2">string</font><font size="2"> poSelect = "SELECTpo_number, supplier, originated_by, deliver_to, " +</font><p class="RTE"><font size="2">"po_status_code, shipping_company,ship_point, service_order, " +</font><p class="RTE">"fob, freight, internal_comments, external_comments,currency, " +<p class="RTE">"hide_cost_on_printout " +<p class="RTE">"FROM purchase_order";<p class="RTE">m_daPO= <font color="#0000ff" size="2">new</font><font size="2"> NpgsqlDataAdapter(poSelect, m_posDBConn);</font><pclass="RTE"><font color="#0000ff" size="2">string</font><font size="2"> poInsert = "INSERT INTO purchase_order(po_number, supplier, currency, " +</font><p class="RTE">"originated_by, deliver_to, po_status_code, shipping_company,fob, freight, " +<p class="RTE">"internal_comments, external_comments, service_order, hide_cost_on_printout)" +<p class="RTE">"VALUES (:po_number, :supplier, :currency, " +<p class="RTE">":originated_by, :deliver_to,:po_status_code, :shipping_company, :fob, :freight, " +<p class="RTE">":internal_comments, :external_comments,service_order, :hide_cost_on_printout)";<p class="RTE">NpgsqlCommand poInsertCmd = <font color="#0000ff"size="2">new</font><font size="2"> NpgsqlCommand(poInsert, m_posDBConn);</font><p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("po_number",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["po_number"].SourceColumn = "po_number";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("supplier",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["supplier"].SourceColumn = "supplier";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("currency",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["currency"].SourceColumn = "currency";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("originated_by",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["originated_by"].SourceColumn= "originated_by";<p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("deliver_to",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["deliver_to"].SourceColumn = "deliver_to";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("po_status_code",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["po_status_code"].SourceColumn= "po_status_code";<p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("shipping_company",DbType.Int16));</font><p class="RTE">poInsertCmd.Parameters["shipping_company"].SourceColumn= "shipping_company";<p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("freight",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["freight"].SourceColumn = "freight";<pclass="RTE">poInsertCmd.Parameters.Add(<font color="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("fob",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["fob"].SourceColumn = "fob";<p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("internal_comments",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["internal_comments"].SourceColumn= "internal_comments";<p class="RTE">poInsertCmd.Parameters.Add(<fontcolor="#0000ff" size="2">new</font><font size="2"> NpgsqlParameter("external_comments",DbType.String));</font><p class="RTE">poInsertCmd.Parameters["external_comments"].SourceColumn= "external_comments";<p class="RTE">m_daPO.InsertCommand= poInsertCmd;<p class="RTE"> <p class="RTE">After that I load the data using the Fill methodof the data adapter. Then a new row is inserted into the "po" DataTable. I check the DataSet and the row has been added.<pclass="RTE">Then I save the data. Here is first part of the code for the update:<font size="2"><p></font><font color="#0000ff"size="2">try</font><font size="2"><p>{<p>m_posDBConn.Open();<p>poUpdate = m_posDBConn.BeginTransaction();<p>m_daPO.InsertCommand.Transaction= poUpdate;<p></font><font color="#0000ff" size="2">try</font><fontsize="2"><p>{<p>m_daPO.Update(m_dsPO, "po"); // this causes error<p>poUpdate.Commit();</font><pclass="RTE">...<p class="RTE"> <p class="RTE">I would appreciate help with this as soonas possible because it is impeding development.<p class="RTE">Thanks.<p class="RTE">Evan<p class="RTE"> </div>
В списке pgsql-interfaces по дате отправления:
Предыдущее
От: Christopher Kings-LynneДата:
Сообщение: Re: [PATCHES] Proposed patch for error locations