2016-04-15 8 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たぶん私は 'for'サイクルでそれを行うためにwan't、十分に明確ではなかったので、私は'一覧<からすべての行を追加することができますです> ' – Kawaii

+0

おそらく、リスト

'を使い始めて、3つの異なるリスト – 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私はそれをテストしていませんが、それはすべきですそれでは。 3つの文字列リストの代わりに 'List 'を使用することをお勧めします( 'YourClass'には' Quandido'、 'Artigo'と' Valor'が含まれます) – Nino

+0

'nd(" linhasに挿入する(@ quantidade、@ descricao、@ valor) "、sqlConn);'は、ndメソッドが存在しないことを示します。また、メソッド 'quantidade'、' artigo'、 'valor'は' sqlInsertLines'には存在しないとも言います。コピー/貼り付けエラーだった – Kawaii

+0

を修正しました。それを貼り付けるだけではなく、提案された答えを理解しようとしてください。 :) – Nino

関連する問題