2016-04-15 62 views
1

我有這個應用程序,我從TextBox獲取數據,將其插入List<>,然後在CheckBoxList中顯示一個新行。
例子:C#List <> - 插入數據庫

List<string> quantidade = new List<string>(); 
for (int i = 0; i < CheckBoxListLinhas.Items.Count; i++) 
{ 
    quantidade.Add(TextBoxQuantidade.Text.ToString()); 
} 
List<string> artigo = new List<string>(); 
for (int i = 0; i < CheckBoxListLinhas.Items.Count; i++) 
{ 
    artigo.Add(TextBoxArtigo.Text.ToString()); 
} 
List<string> valor = new List<string>(); 
for (int i = 0; i < CheckBoxListLinhas.Items.Count; i++) 
{ 
    valor.Add(TextBoxValor.Text.ToString()); 
} 
/*List<string> artigo = new List<string>(); 
    for (int i = 0; i < CheckBoxListLinhas.Items.Count; i++) 
    { 
    artigo.Add(TextBoxArtigo.Text.ToString()); 
    }*/ 

CheckBoxListLinhas.Items.Add(new ListItem("Quantidade: " + TextBoxQuantidade.Text + " Artigo: " + TextBoxArtigo.Text + " Valor: " + TextBoxValor.Text) + " Anexo: " + FileUpload1.FileName.ToString()); 

然後我想從List<>每一行插入到數據庫中,我已經有這個例子:

SqlCommand sqlInsertList = new SqlCommand("Insert into linhas (quantidade,descricao,valor) VALUES(@quantidade,@descricao,@valor)", sqlConn); 
sqlInsertList.Parameters.AddWithValue("@quantidade",); 
sqlInsertList.Parameters.AddWithValue("@descricao", TextBoxArtigo.Text); 
sqlInsertList.Parameters.AddWithValue("@valor", float.Parse(TextBoxValor.Text, CultureInfo.InvariantCulture.NumberFormat)); 

sqlConn.Open();       
sqlTran = sqlConn.BeginTransaction(); 
sqlInsert.Transaction = sqlTran;   
sqlInsert.ExecuteNonQuery();    
sqlTran.Commit(); 

什麼是我能做到這一點,並調整最簡單的方法我的SQLInsert

+0

這是最簡單的... – Aristos

+0

@Aristos也許我還不夠清楚,我wan't以'for'週期做到這一點,所以我可以從'列表中添加的每一行<> ' – Kawaii

+0

也許你應該開始使用'List

'而不是三個不同的列表 – Steve

回答

0
SqlCommand sqlInsertList = new SqlCommand("Insert into linhas (quantidade,descricao,valor) VALUES(@quantidade,@descricao,@valor)", sqlConn); 

sqlConn.Open();       
sqlTran = sqlConn.BeginTransaction(); 

for (int i = 0; i < quantidade.Count; i++) 
{ 
    sqlInsertList.Transaction = sqlTran; 

    sqlInsertList.Parameters.Clear(); 
    sqlInsertList.Parameters.AddWithValue("@quantidade", quantidade[i]); 
    sqlInsertList.Parameters.AddWithValue("@descricao", artigo[i]); 
    sqlInsertList.Parameters.AddWithValue("@valor", loat.Parse(valor[i], CultureInfo.InvariantCulture.NumberFormat));   
    sqlInsertList.ExecuteNonQuery();  
}   
sqlTran.Commit(); 
+0

@Kawaii我還沒有測試過,但應該是吧。我也建議你使用'List '而不是三個字符串列表(其中'YourClass'包含道具'Quandido','Artigo'和'Valor') – Nino

+0

我在'nd(「Insert into linhas (@ quantidade,@ descricao,@ valor)「,sqlConn);',它表示nd方法不存在。它還表示'sqlInsertLines'中不存在'quantidade','artigo'和'valor'方法。 – Kawaii

+0

這是複製/粘貼錯誤,我已修復它。不要只是複製粘貼它,嘗試瞭解建議的答案。 :) – Nino

相關問題