[英]Setting SQL query parameter to Int32 in C#
我在嘗試編寫一些代碼時遇到了問題。 我正在為供應商訂單做一些事情,所以我有一個名為“encomendas_fornecedores”的表,在鍵之前有一個自動增量字段,該字段是銷售代碼,它包含在數字(這是一個文本字段)之前的 EF 中。
這是代碼:
connection.Open();
OleDbCommand comando1 = new OleDbCommand();
OleDbCommand comando2 = new OleDbCommand();
OleDbCommand comando3 = new OleDbCommand();
comando1.Connection = connection;
comando2.Connection = connection;
comando3.Connection = connection;
comando1.CommandText = "INSERT INTO encomendas_fornecedores (cod_encomenda_forn, cod_metodo, cod_forn, total_pagar_forn) VALUES('FO', '" + txtcodmetodo.Text + "', '" + txtcodforn.Text + "', '" + lbltotalapagar.Text + "'); ";// insert into table the values with a FO to cod
comando1.ExecuteNonQuery();
comando2.CommandText = "Select MAX(num_encomenda) From encomendas_fornecedores;";// selecting maximum num encomenda so I can isolate it and add to a text before(btw I do this in php/sql no problems
int numero = Convert.ToInt32(comando2.ExecuteScalar());//max num_encomenda
string codencomendaforn= "EF"+Convert.ToString(numero);// sales code completed
comando3.CommandText = "UPDATE encomendas_fornecedores SET cod_encomenda_forn = '"+codencomendaforn+"' WHERE num_encomenda = '"+ numero +"';";//query that is giving me the problems, it says something like "type of data incorrect in data expression"
comando3.ExecuteScalar();//giving me error this line
connection.Close();
但是現在這里的問題是 cod_encomenda_forn 是文本,而 num_encomenda 自動遞增,就像它在 sql 中一樣,我嘗試在文本框中顯示查詢以查看它是否有任何問題,但似乎沒有任何問題。
"UPDATE encomendas_fornecedores SET cod_encomenda_forn = '"+codencomendaforn+"' WHERE num_encomenda = **'**"+ **numero** +"**'**;";//query that is giving me the problems,it says something like "type of data incorrect in data expression"
您正在將一個字符串numero
傳遞給一個似乎需要一個numero
的 where 語句。 只要它是數字,它就應該可以工作,但絕對不能保證工作。 其次,您將另一個codencomendaforn
字符串傳遞給encomenda
什么是encomenda
的數據類型?
您似乎沒有處理 c# 代碼和 SQL 查詢之間潛在的數據類型差異。 此外,在 SQL 語句中的值周圍用單引號 '' 告訴數據庫引擎它是一個字符串,即使它是 '1234'。 雖然 SQL 會自動轉換某些值,但並非總是如此。 此外,c# .net 庫在發送 SQL 語句之前還會查找一些轉換等。 要適當地修復使用數據類型為 SQL 表中的數據庫類型的參數。 要在語句中簡單地修復它,找出您的數據類型並適當地修復 '' 單引號。
PS,那些試圖在評論中幫助你的人很好,並告訴你在解決這個問題后畢業時保持工作的專業方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.