EDITED !:將datagridveiw數據插入到sql數據庫中。 「解析查詢時出錯」
我正在寫一個程序,它具有將excel文件加載到datagridview中的功能。 Excel文件包含十列的產品列表。至於現在它工作正常。文件加載正常。但是在這個加載之後,程序應該用來自datagridview的數據填充SQL Server CE數據庫。因此,下次我打開這個表單時,datagridview應該填充來自數據庫的數據。 (這種Excel加載功能是當我的公司更改某些內容時更新產品列表)。
我在將數據插入數據庫時遇到問題。
我有一個錯誤:
There was an error parsing the query. [Token line number = 1, Token line offset = 67, Token in error = Taq]
DNA是在Excel文件(行1列3( 「ITEM」)的小區中的單詞單元的全部內容是AB-AB-0192/A的Taq DNA聚合酶(許可證)我認爲問題與TAQ之前的空間有某種關係,我測試了這一點:當我刪除空間時,問題信息從Taq變爲DNA,那麼我怎樣才能避免這種情況?被設置爲文本,和SQL Server CE數據庫列nvarchar
類型。
EDIT!
個玉傢伙,你把我在正確的道路上:)
這工作:
string strQuery = @"INSERT INTO TabelaProdukty VALUES (@VD, @ItemCode, @Item, @Qty, @Ppcur, @StandardPrice, @CeMarked, @Description, @Description2, @Edma)";
sqlconnection.Open();
using (System.Data.SqlServerCe.SqlCeCommand comm = new System.Data.SqlServerCe.SqlCeCommand(strQuery, sqlconnection))
{
comm.Parameters.Add("@VD", SqlDbType.NVarChar);
comm.Parameters.Add("@ItemCode", SqlDbType.NVarChar);
comm.Parameters.Add("@Item", SqlDbType.NVarChar);
comm.Parameters.Add("@Qty", SqlDbType.NVarChar);
comm.Parameters.Add("@Ppcur", SqlDbType.NVarChar);
comm.Parameters.Add("@StandardPrice", SqlDbType.NVarChar);
comm.Parameters.Add("@CeMarked", SqlDbType.NVarChar);
comm.Parameters.Add("@Description", SqlDbType.NVarChar);
comm.Parameters.Add("@Description2", SqlDbType.NVarChar);
comm.Parameters.Add("@Edma", SqlDbType.NVarChar);
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
comm.Parameters["@VD"].Value = dataGridView1.Rows[i].Cells["VD"].Value;
comm.Parameters["@ItemCode"].Value = dataGridView1.Rows[i].Cells["ItemCode"].Value;
comm.Parameters["@Item"].Value = dataGridView1.Rows[i].Cells["ITEM"].Value;
comm.Parameters["@Qty"].Value = dataGridView1.Rows[i].Cells["QUANTITY"].Value;
comm.Parameters["@Ppcur"].Value = dataGridView1.Rows[i].Cells["PPCUR"].Value;
comm.Parameters["@StandardPrice"].Value = dataGridView1.Rows[i].Cells["STANDARD_SELL_PRICE"].Value;
comm.Parameters["@CeMarked"].Value = dataGridView1.Rows[i].Cells["CE-MARKED"].Value;
comm.Parameters["@Description"].Value = dataGridView1.Rows[i].Cells["ITEM_DESCRIPTION"].Value;
comm.Parameters["@Description2"].Value = dataGridView1.Rows[i].Cells["ITEM_DESCRIPTION2"].Value;
comm.Parameters["@Edma"].Value = dataGridView1.Rows[i].Cells["EDMA"].Value;
comm.ExecuteNonQuery();
}
sqlconnection.Close();
數據庫充滿了正確的數據,當我重新啓動程序的數據庫已經填滿。現在我只需要在添加新內容之前清除數據庫。
雖然有一個問題。獲取消息: 從一種數據類型轉換爲另一種數據時,數據被截斷。 [功能名稱(如果知道)=]
是的,有你的語句** **巨大的問題 - 你**不使用參數!**,因此對於SQL注入攻擊而言你是開放的。 **不要連接你的SQL語句!**從來沒有。使用參數化查詢 - **總是**。 –
好的,有關如何做到這一點的任何鏈接?還是一個例子? –
有**百萬**的例子 - [只是在Google上搜索!](https://www.google.ch/search?q=ado.net+parametrized+queries) –