C#List<> - 插入数据库

时间:2016-04-15 11:25:56

标签: c# ado.net

我有这个应用程序,我从TextBox获取数据,将其插入List<>,然后在CheckBoxList中显示一个新行。
例如:

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的最简单方法是什么?

1 个答案:

答案 0 :(得分: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();